Как получить данные в атрибутах модели из связанной таблицы Laravel и вывести это json без ошибки?

Привет!
Столкнулся с интересной проблемой в Laravel.

Есть две модели Item и ItemImages.
Мне надо получить json со всеми items, всё работает пока не появился атрибут 'photo' (первое фото)
class Item extends Model
{
    protected $appends = [
        'photo',
    ];

    public function imgs()
    {
        return $this->hasMany(ItemImage::class);
    }

    public function getPhotoAttribute()
    {
        $img = $this->imgs->first();
        return $img->src;
    }
}

В итоге.

dd(Item::all()); //работает
response()->json(['items'=>Item::all()]) //ошибка

Во вьюхах всё работает, а вот попытка получить json выдает "PHP Fatal error: Allowed memory size of 134217728 bytes" в тинкере или 504 error в браузере. Убираю атрибут 'photo' - работает.

help!
  • Вопрос задан
  • 196 просмотров
Пригласить эксперта
Ответы на вопрос 1
hrhr99
@hrhr99 Автор вопроса
Решение в ограничениях Лары.

Если хочешь json, нельзя в атрибутах модели обращаться к связанным таблицам текущей модели. Выдает ошибку переполнения памяти.

В документации об этом не написано.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
29 мар. 2024, в 15:28
10000 руб./за проект
29 мар. 2024, в 15:11
50000 руб./за проект
29 мар. 2024, в 15:06
50000 руб./за проект