我想在我收到特定请求时向我的查询添加一些额外的子句
我可以使用https://laravel.com/docs/5.6/queries#conditional-clauses
来完成 ->when($markeplace_id !=0, function ($query) use ($marketplace_id){
return $query->join('seller b', 'a.seller_id', '=', 'b.seller_id')
});
->when($markeplace_id !=0, function ($query) use ($marketplace_id){
return $query->join('marketplaces as c', 'c.marketplace_id', '=', 'b.marketplace_id')
});
->when($markeplace_id !=0, function ($query) use ($marketplace_id){
return $query->where('c.marketplace_id','=',$marketplace_id)
});
条件子句只返回1个子句。但我有3.我应该使用3次,还是只能将它们捆绑到1?
->join('sellers as b', 'a.seller_id', '=', 'b.seller_id')
->join('marketplaces as c', 'c.marketplace_id', '=', 'b.marketplace_id')
->where('c.marketplace_id','=',$marketplace_id)
答案 0 :(得分:1)
尝试
->when($markeplace_id !=0, function ($query) use ($marketplace_id){
$query->join('seller b', 'a.seller_id', '=', 'b.seller_id');
$query->join('marketplaces as c', 'c.marketplace_id', '=', 'b.marketplace_id');
return $query->where('c.marketplace_id','=',$marketplace_id);
});
我没有测试过它。让我知道如果不能正常工作