我目前正在使用Laravel 5.2开发一个网站,我现在多次遇到这个问题,所以我决定寻求帮助。
我将给你一个简单的问题例子。
假设我有一个客户端数据库。 colums id,name,surname 等。我想在 Blade 视图中获取客户的全名。
目前,我会做这样的事情
class Client extends Model {
public function fullName() {
return $this->name . " " . $this->surname;
}
}
然后在我看来,我会做$client->fullName()
。
它有效,但我认为这不是正确的方法。我认为如果将全名存储为对象属性而不是方法,那会更好。
有什么方法可以做到这一点吗?我很确定在Laravel中必须有一种方法可以做到这一点因为imho这个问题很常见,但我的问题是我不知道应该google什么。
答案 0 :(得分:2)
您可以为此定义一个访问者
public function getFullNameAttribute()
{
return $this->name . " " . $this->surname;
}
并将该属性添加到$ appends属性中,以自动包含在模型的数组和JSON表单中
protected $appends = ['full_name'];
现在您可以将其作为属性$ user-> full_name;
进行访问