如何在Laravel关系中建立INNER JOIN?

时间:2018-07-07 07:11:42

标签: php laravel

这是purchase_order模型:

class purchase_order extends Model
{
    protected $table = "purchase_order";

    public function commodities()
    {
        return $this->hasMany(commodities::class, 'purchase_order_id', 'id')->where('invoiced', 1);
    }
}

我这样使用它:

purchase_order::with("invoiced_commodities")->get();

它返回所有purchase_order及其invoiced-commodities。一切都很好。


据我所知,它的行为类似于LEFT JOIN,因为它返回的purchase_order没有任何invoiced-commodities。现在,我需要使其像INNER JOIN。我的意思是我只想获得至少有一个purchase_orders的{​​{1}}。知道我该怎么做吗?

2 个答案:

答案 0 :(得分:3)

  

我只想获取具有至少一种发票商品的采购订单

// Retrieve all purchase orders that has at least one invoiced commodities
purchase_order::has("invoiced_commodities")->get();

Documentation

答案 1 :(得分:2)

尝试此代码

$purchase_orders = purchase_order::has("invoiced_commodities")->get();

Aslo请参阅文档https://laravel.com/docs/5.5/eloquent-relationships#querying-relationship-existence