Laravel return 模型中的现有值为 null

Laravel return null for existing value in model

Controller 中从数据库中获取查询后,我得到以下输出:

$newTickets = Ticket::with('user')->whereStatus(0)->orderBy('id', 'desc')->take(5)->get();

dd($newTickets[0]->user);

输出:

#attributes: array:18 [▼
    "id" => 1
    "active" => 1
    "name" => "user1"
    "family" => "user1111"
    "username" => "xxxxx"
    "avatar" => "user_bg3.jpg"
    "email" => "p@p.com"
    "email_verified_at" => null
    "user_id" => null
    "properties_id" => null
    "password" => "y$b50fMYQMfMyJgtgCDEfQyueu.C.VfhfQCXT/f2Y8ObAe4nMrNiXEe"
    "mobile_number" => "333333"
    "device_id" => "0123456789"
    "api_token" => "aaaaaaa"
    "remember_token" => null
    "deleted_at" => null
    "created_at" => "2020-06-02 13:13:15"
    "updated_at" => "2020-06-02 13:13:15"
]

现在当我尝试显示 avatar 字段值时,我得到 null :|

dd($newTickets[0]->user->avatar);

输出:

null

有什么问题,为什么我不能得到这个值和那个 return null?

我可以得到另一个值,但我的问题是只得到 avatar

User 型号:

class User extends Authenticatable
{
    use Notifiable, SoftDeletes;

    protected $guarded = [
        'id',
    ];
    protected $hidden = [
        'password', 'remember_token',
    ];

    protected $casts = [
        'email_verified_at' => 'datetime',
        'avatar' => 'array',
    ];

    public function group()
    {
        return $this->belongsToMany(UserGroup::class, 'user_user_group');
    }

    public function child()
    {
        return $this->hasMany(User::class)->with('child');
    }

    public function parent()
    {
        return $this->belongsTo(User::class, 'user_id');
    }

    public function blogs()
    {
        return $this->hasMany(UserBlog::class);
    }

    public function setPasswordAttribute($password)
    {
        $this->attributes['password'] = Hash::make($password);
    }

    public function getFullNameAttribute()
    {
        return $this->name.' '.$this->family;
    }
}

您正在将头像投射到数组中... 当你这样做时...... laravel 自动从 json 解码 'avatar' 用于输出并对其进行编码用于输入...... more details

只需从 :

中删除头像
  protected $casts = [
        'email_verified_at' => 'datetime',
        'avatar' => 'array',
    ];