我有一个如下模型:
User extends Authenticatable
{
protected $appends = array('role');
public function getRoleAttribute()
{
$role = DB::table('acl_user_has_roles')->where('user_id', $this->id)
->value('role');
return $role;
}
}
当我尝试像下面这样引用此foo属性时:
$user = User::find(1);
unset($user->id); // This line causes the problem.
echo $user->role;
我总是得到“空”而不是预期的“所有者”。
我在这里想念什么?
我正在laravel 5.5.43中运行它。
在following post中,提到了getKey()函数,该函数不起作用。
问题实际上是由其他原因引起的,如以下medium post中所述。
答案 0 :(得分:0)
以防万一其他人遇到同一问题。该问题是由代码中的另一行引起的。我在回显之前取消设置$ user-> id。
此问题在以下中等职位中有详细描述:
Be Careful to Use Laravel Eloquent’s Accessors, Mutators And Events