这是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}}。知道我该怎么做吗?
答案 0 :(得分:3)
我只想获取具有至少一种发票商品的采购订单
// Retrieve all purchase orders that has at least one invoiced commodities
purchase_order::has("invoiced_commodities")->get();
答案 1 :(得分:2)
尝试此代码
$purchase_orders = purchase_order::has("invoiced_commodities")->get();
Aslo请参阅文档https://laravel.com/docs/5.5/eloquent-relationships#querying-relationship-existence