Laravel:如何建立没有$ hidden属性的关系?

时间:2018-07-19 13:29:47

标签: laravel relationship eager-loading

我在Post和User之间有关系

public function user()
{
    return $this->belongsTo('App\User');
}

例如当我显示急切加载的帖子

$post->with('user');

它显示了相关用户,但带有他的$ hidden字段,因此可以看到他的加密密码,Remember_token等。如何避免这种情况?我知道在定义关系时可以使用select完成

public function user()
{
    return $this->belongsTo('App\User')->select(array('id', 'username', 'slug', 'description'));
}

但是有没有更清洁的方法呢?

1 个答案:

答案 0 :(得分:1)

嗯,也许您搞砸了User类的$ hidden属性? 开箱即用,无需执行任何操作。如果您感到好奇,它们全部由HidesAttributes特性处理,该特性是Model基类的一部分。

由于您的User类应该是Authenticateable的子类,而Authenticatable是Model的子类,因此您应该一切顺利。 仔细检查您的用户类别。

/**
 * The attributes that should be hidden for arrays.
 *
 * @var array
 */
protected $hidden = [
    'password', 'remember_token',
];