环境(Environment)
正文(What Should We Do)
- 在使用 Laravel 的模型时,我们往往会添加一些关联模型在里边,如
namespace App\Models\Member;
use Illuminate\Database\Eloquent\Model;
class Member extends Model
{
public function roles()
{
return $this -> hasMany('App\Models\Role', 'member_id', 'id');
}
}
- 当我们查找一个用户的数据时,拿到的模型会包含关联模型的数据,但是有时候我们并不希望这些数据返回给前端(就像上面的例子,可能我们并不需要前端知道这个用户有什么权限)。这个时候我们可以将这个关联模型对应的方法名填入到该模型的 $hidden 属性中,那样返回的模型就不会带有关联模型的数据了。上面的例子添加后就是这个样子:
namespace App\Model\Member;
use Illuminate\Database\Eloquent\Model;
class Member extends Model
{
// hidden 属性是一个数组
protected $hidden = ['roles'];
public function roles()
{
return $this -> hasMany('App\Models\Role', 'member_id', 'id');
}
}