获取后如何将自定义属性推送到雄辩的对象(模型)?



我有自定义模型User,我想在获取数据后将自定义属性推送到模型。我该怎么做?

我知道在获取之前我们可以添加这样的自定义属性:

class User extends Model
{
protected $appends = ['callable'];
public function getCallableAttribute()
{
$callable = $this->getMeta('phone') ? true : false;
return $callable;
}
}

但是在获取数据后如何做到这一点,例如在以下之后:

$user = User::find(1);

现在如何将自定义属性附加到获取的User对象数据?

您可以为此定义一个 Laravel 访问器

例如

class User extends Model
{
/**
* Get the user's first name.
*
* @param  string  $value
* @return string
*/
public function getFirstNameAttribute($value)
{
return ucfirst($value);
}
/**
* Get the user's full name.
*
* @return string
*/
public function getFullNameAttribute()
{
return "{$this->first_name} {$this->last_name}";
}
}

然后,您可以像这样访问访问器:

$user = AppUser::find(1);
$firstName = $user->first_name; // In studly Case
$firstName = $user->full_name; // In studly Case

您可以在此处阅读有关Laravel配件的更多信息:https://laravel.com/docs/5.8/eloquent-mutators#defining-an-accessor

最新更新