我有一个 User.php 模型。
public function getFullNameAttribute()
{
if($this->first_name && $this->last_name) {
return $this->first_name . ' ' . $this->last_name;
} else {
return $this->name;
}
}
在blade文件中,如果我们想要获取它,我是这样写的。
{{ $user->full_name }}
但我不知道如何在 Ajax 中做到这一点。我写了下面的代码,它显示了
undefined
。
<strong class="f20 mb-1">`+user.full_name+`</strong>
在 AJAX 响应中,您需要确保将
full_name
属性附加到用户模型中。将模型转换为数组或 JSON 时,Laravel 不会自动附加访问器属性。您可以通过向您的 $appends
模型添加 User
属性来完成此操作:
class User extends Authenticatable
{
protected $appends = ['full_name'];
public function getFullNameAttribute()
{
if($this->first_name && $this->last_name) {
return $this->first_name . ' ' . $this->last_name;
} else {
return $this->name;
}
}
}
在此代码中,
$appends = ['full_name'];
告诉Laravel在将用户模型转换为数组或JSON时包含full_name
属性。现在,full_name
应该可以在您的 AJAX 响应中使用。