如何自动包含模型属性?

How to include model attribute automatically?

我有 User 模型,它定义了以下属性:

public function getAvatarUrlAttribute()
{    
    return 'https://i.pravatar.cc/300?u=' . $this->email;
}

我通常使用如下方式访问此属性:

User::find(1)->avatar_url;

问题

当我执行这段代码时,我需要 return User 模型的所有属性:

$users = User::whereRoleIs('doctor')->get();

return编辑到 ajax 的集合不包含 avatar_url 属性。如何自动包含所有属性?

谢谢。

你需要明确地告诉 Laravel 你想在使用 appends 将它转换为数组时包含它:

<?php

class User {

    protected $appends = ['avatar_url'];

    public function getAvatarUrlAttribute()
    {    
        return 'https://i.pravatar.cc/300?u=' . $this->email;
    }

}