Laravel: отношения 2-го уровня, извлекающие только одну строку

Я использую Laravel 5.6, и у меня есть связь между 3 таблицами. Корзина-> cartItem-> Изображения Вот мой код контроллера:

$cart = Cart::where('created_by_id', Auth::user()->id)->with('cartDetails')->first();

Вот моя модель тележки:

public function CartItem()
    {
        return $this->hasMany('App\Http\models\CartItem', 'cart_id')->with('images');
    }

Вот модель cartItem:

public function images()
    {
        return $this->belongsTo('App\Http\models\ProductImage', 'item_id', 'product_id');
    }

Теперь в результате я получаю только одно изображение, хотя у меня есть несколько изображений в базе данных. Он всегда выбирает последнее вставленное изображение. Я хочу получить все изображения или хотя бы первое, но не последнее. Пожалуйста помоги.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
36
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы должны использовать отношение hasMany() вместо belongsTo():

public function images()
{
    return $this->hasMany('App\Http\models\ProductImage', 'item_id', 'product_id');
}
Ответ принят как подходящий

если у вас есть несколько изображений в базе данных товаров, вы должны использовать hasMany() вместо belongsTo().

public function images()
{
    return $this->hasMany('App\Http\models\ProductImage', 'item_id', 'product_id');
}

При использованииbelongTo()?

Предположим, у вас есть модель сообщений и комментариев. Теперь вам нужен публикация комментария. Это инверсия отношения hasMany. Чтобы определить инверсию отношения hasMany, определите функцию отношения в модели Comment (дочерней), которая вызывает метод ownTo

 public function post()
    {
        return $this->belongsTo('App\Post');
    }

Другие вопросы по теме