Задать вопрос

Как получить данные в атрибутах модели из связанной таблицы 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!
  • Вопрос задан
  • 205 просмотров
Подписаться 2 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
hrhr99
@hrhr99 Автор вопроса
Решение в ограничениях Лары.

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

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

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

Похожие вопросы