我有两个型号。状态和SaleDetails。
Status
------
id
name
slug
我没有定义从Status到SaleDetails的任何关系。
SaleDetails
-----------
id
id_statuses //connects it to the status table
id_products
price
qty
模型中的:
public function status(){
return $this->belongsTo('App\Status', 'id_statuses', 'id');
}
所以我在这里要做的就是获得状态与某个slug匹配的所有订单。
E.g dd($this->sale_details->where('status.slug', 'pending')
用我所拥有的:
$orders = $this->sale_details->with('product', 'status')->today()->get();
我应该能够根据前端的状态slu过滤它们,但我想直接从这里开始。
最好的方法是什么?
答案 0 :(得分:2)
您应该使用whereHas()
它允许您为要检查的相关模型指定其他过滤器。
要应用where条件,您可以使用whereHas()
之类的,
$status = "pending";
$this->sale_details->whereHas('status', function($q) use ($status){
$q->where('slug', $status);
})->get();
答案 1 :(得分:-2)
我认为,如果您想要快速处理
,则优于使用查询构建器