Laravel雄辩:从getAttribute函数内部获取模型ID?

时间:2018-09-09 07:19:48

标签: laravel eloquent accessor getattribute

我有一个如下模型:

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中所述。

1 个答案:

答案 0 :(得分:0)

以防万一其他人遇到同一问题。该问题是由代码中的另一行引起的。我在回显之前取消设置$ user-> id。

此问题在以下中等职位中有详细描述:

Be Careful to Use Laravel Eloquent’s Accessors, Mutators And Events