Eloquent选择关系至少有一个结果的地方

时间:2017-09-22 07:27:17

标签: sql laravel eloquent

所以我有OrderOrderItemProduct

class Order extends Model
{

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

}

class OrderItems extends Model
{

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

}

我需要选择所有至少有一个订单商品的订单,该订单商品的产品类型为物理。

Order::whereHas('items.product', function ($itemQuery) use ($productType) {
    $itemQuery->whereIn('type_type', $productType);
});

这会返回仅包含实体产品的订单。

1 个答案:

答案 0 :(得分:0)

试试这个

Order::whereHas('items', function ($itemQuery){
    $itemQuery->whereHas('product', function($product) use ($productType) {
        $product->whereIn('type_type', $productType);
    });
});