将当前Eloquent传递给Model中的getXAttribute

时间:2017-05-17 06:51:21

标签: laravel model eloquent laravel-5.4

我创建了一个返回布尔值的getIsAdminAttribute,如果我使用Auth::user()它会起作用,但是,现在我需要将User对象传递给此方法,以便我可以检查给定用户是否为admin。

class User extends Authenticatable {

    public function getIsAdminAttribute()
    {   
       if (Admin::where('user_id', $user->id)->first()) {
          return true;
       } else {
          return false;
       }
    }
}

然而,这不起作用。如何将$user传递给此方法,以便我可以将其称为:

$user->is_admin并返回布尔值。

如果我试试这个,它会返回null。

getIsAdminAttribute($user) {
   dd($user);
}

1 个答案:

答案 0 :(得分:1)

您已经在User模型中,因此您可以使用$this来访问当前对象的属性。

public function getIsAdminAttribute()
{   
   return Admin::where('user_id', $this->id)->count() > 0;
}