在Laravel中使用HasManyThrough

时间:2018-08-03 10:50:17

标签: laravel-5 eloquent

我具有以下结构:

订单 ID 名称

产品 ID 名称

项目 ID order_id product_id 数量

关系如下:

订购

public function items(){
 return $this->hasMany(Item::class)
}

public function products(){
 return $this->hasManyThrough(Product::class, Item::class);
}

项目

public function order(){
 return $this->belongsTo(Order::class);
}

public function product(){
 return $this->belongsTo(Product::class);
}

产品

public function items(){
 return $this->hasMany(Item::class);
}

我希望获得该订单的所有产品,例如: $ order-> items()-> products()-> get()使用hasManyThrough方法,但是我一定做错了,因为它试图在产品表中查找item_id。

1 个答案:

答案 0 :(得分:0)

我意识到我并不需要很多,我只需要使用items表作为数据透视表,就可以像这样定义Order模型上的关系:

public function products(){
 return $this->belongsToMany(Product::class, 'items');
}