Laravel - 在DB select上添加模型属性

时间:2016-09-03 10:45:20

标签: php laravel laravel-5.2

我目前正在使用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什么。

1 个答案:

答案 0 :(得分:2)

您可以为此定义一个访问者

public function getFullNameAttribute()
{
    return $this->name . " " . $this->surname;
}

并将该属性添加到$ appends属性中,以自动包含在模型的数组和JSON表单中

protected $appends = ['full_name'];

现在您可以将其作为属性$ user-> full_name;

进行访问

Laravel Accessors & Mutators