Php Laravel查询生成器-高级条件子句(可选参数)
我需要带有接受可选参数的查询生成器的子句。例如,考虑以下内容: 我们有三个搜索字段用于搜索产品名称、公司名称和位置(邮政编码、城市或州)。2^3(8)种可能性: 该位置与或连接Php Laravel查询生成器-高级条件子句(可选参数),php,mysql,laravel,Php,Mysql,Laravel,我需要带有接受可选参数的查询生成器的子句。例如,考虑以下内容: 我们有三个搜索字段用于搜索产品名称、公司名称和位置(邮政编码、城市或州)。2^3(8)种可能性: 该位置与或连接 WHERE location.postal_code LIKE '%...%' OR location.city LIKE '%...%'; 以及搜索框之间的关系 WHERE (location.postal_code LIKE '%...%' OR location.city LIKE '%...%') AND co
WHERE location.postal_code LIKE '%...%' OR location.city LIKE '%...%';
以及搜索框之间的关系
WHERE (location.postal_code LIKE '%...%' OR location.city LIKE '%...%') AND company.name LIKE '%...%';
我们可以用原始查询和if-else语句来编写它。我们如何使用查询生成器编写“clean”呢?您应该像这样使用where闭包:
$q->where(function($q) use($request) {
if($request->code)
{
$q->orWhere('postal_code ','LIKE','%'.$request->code.'%');
}
if($request->city)
{
$q->orWhere('city','LIKE','%'.$request->code.'%');
}
if($request->companyName)
{
$q->where('companyName',.....);
}
})->get();
因此,您可以在何处或何处形成干净的查询。您还可以在闭包内传递使用它的请求。您还可以使用$q->或在其中传递函数的位置