我有一个orders
表和一个order_items
表,分别与hasMany
和belongsTo
相关联。
还有products
表格分别与order_items
和hasMany
belongsTo
相关联。
我的目标是创建一个Orders
对象,该对象还包含不使用join
的产品。
这是可能的,如何建立关系以在Eloquent中实现这一点?
理想情况下,我希望将其放在with
中,但我无法弄清楚如何使其发挥作用。
订单型号:
class Order extends Eloquent {
public function orderItems()
{
return $this->hasMany('OrderItem');
}
}
OrderItem模型:
class OrderItem extends Eloquent {
public function order()
{
return $this->belongsTo('Order');
}
public function products()
{
return $this->belongsTo('Product');
}
}
产品型号:
class Product extends Eloquent {
public function orderItems()
{
return $this->hasMany('OrderItem');
}
}
查询:
$order = Order::with('user', 'orderItems', 'address')
->where('orders.id', $id)
->get()
->toArray();
答案 0 :(得分:1)
您正在寻找belongsToMany
关系
class Order extends Eloquent {
public function items()
{
return $this->belongsToMany('Product','order_items','order_id','product_id'); //Assuming that 'order_items' table has order_id and product_id as foreign keys
}
}
您也可以work使用数据透视表(order_items
表格)。