我正在使用Laravel 5.6,并且我在3个表之间有关联。购物车->购物车->图片 这是我的控制器代码:
$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');
}
现在即使我在数据库中有多张图像,我也只能得到一张图像。它总是拾取最后插入的图像。 我要获取所有图像,或者至少要获取第一个而不是最后一个。 请帮忙。
答案 0 :(得分:2)
您应该使用hasMany()
关系而不是belongsTo()
:
public function images()
{
return $this->hasMany('App\Http\models\ProductImage', 'item_id', 'product_id');
}
答案 1 :(得分:1)
如果项目数据库中有多个图像,则必须使用由hasMany()
插入的belongsTo()
。
public function images()
{
return $this->hasMany('App\Http\models\ProductImage', 'item_id', 'product_id');
}
使用时 belongTo()
?
假设您具有发布和评论模型。现在,您要评论帖子。这与hasMany关系的逆关系。要定义hasMany关系的逆关系,请在Comment(child)模型上定义一个关系函数,该函数调用EmiratesTo方法
public function post()
{
return $this->belongsTo('App\Post');
}