Laravel Eloquent 使用查找时无法获取属性

Laravel Eloquent Can't Get Attribute When I Use Find

我需要 return 用户的电子邮件,例如:

public function getUserEmailAttribute()
{
    $user = User::find($this->used_by);
    return $user->email;
}

当我使用 $this->used_by 时,它抛出这个错误:

Trying to get property of non-object (View: /home/mertindervish/Documents/school/app/views/admin/invitation/list.blade.php)

但是当我使用像“2”、“3”这样的字符串时,它起作用了。我的代码有问题吗?我尝试 var_dump $this->used_by 结果是 return string(1)。

原来有一份邀请没有有效的 used_by 值。

为防止将来出现此类错误,请添加空检查:

public function getUserEmailAttribute()
{
    $user = User::find($this->used_by);
    if(is_null($user)) return null;
    return $user->email;
}