Laravel:如何在没有$隐藏属性的情况下建立关系



我在Post和User 之间有关系

public function user()
{
return $this->belongsTo('AppUser');
}

当我显示带有热切负载的帖子时,例如

$post->with('user');

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

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

但是有更干净的方法吗?

嗯,也许你把User类上的$hidden属性搞砸了?这是开箱即用的,没什么可做的。如果你好奇,这一切都由HidesAttributes特性处理,它是Model基类的一部分。

由于User类应该是Authenticatable的子类,而Authenticatable是Model的子类。仔细检查您的用户类。

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

最新更新