Я использую 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');
}
Теперь в результате я получаю только одно изображение, хотя у меня есть несколько изображений в базе данных. Он всегда выбирает последнее вставленное изображение. Я хочу получить все изображения или хотя бы первое, но не последнее. Пожалуйста помоги.






Вы должны использовать отношение 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');
}