Laravel 5.6 -> POST http://127.0.0.1:8000/posts 500 (внутренняя ошибка сервера)

Когда я пытаюсь получить доступ к API и добавить защищенный $appends = ['avatar'], он выдает ошибку, а если я удаляю $appends, возникает ошибка.

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;


class User extends Authenticatable
{
use Notifiable;

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
 protected $fillable = [
    'username', 'email', 'password',
 ];

 protected $appends = ['avatar'];

 /**
 * The attributes that should be hidden for arrays.
 *
 * @var array
 */
 protected $hidden = [
    'password', 'remember_token',
 ];

 public function posts()
 { 
   return $this->hasMany(Post::class);
 }

 public function getAvatar(){
   return 'https://gravatar.com/avatar/'.md5($this->email).'/?d=mm&s=45';
 }

 public function getAvatarAtribute(){
   return $this->getAvatar();
   }
 }

Когда я перехожу к сетевой трассировке, я вижу этот совет -> сообщение: «Метод Illuminate\Database\Query\Builder::getAvatarAttribute не существует».


person Abdoulrhman M. Salah    schedule 03.10.2018    source источник


Ответы (1)


Только что проверил ваш код, который вы должны объявить как

 public function getAvatarAttribute(){
   return $this->getAvatar();
   }

Атрибут вместо атрибута

person user1900956    schedule 03.10.2018