我在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'));
}
但是有没有更清洁的方法呢?
答案 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',
];