我需要带有接受可选参数的查询生成器的子句。例如,请考虑以下情况:
我们有三个搜索字段:产品标题、公司名称和位置(邮政编码、城市或州)。 2^3 (8) 种可能性:
该位置与 OR 连接。
WHERE location.postal_code LIKE '%...%' OR location.city LIKE '%...%';
以及搜索框之间的关系
WHERE (location.postal_code LIKE '%...%' OR location.city LIKE '%...%') AND company.name LIKE '%...%';
我们可以使用原始查询和 if-else 语句来编写它。我们如何使用查询生成器编写“干净”的内容?
您应该像这样使用 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();
因此,您可以在 where 或Where 中干净地形成查询。您也可以传递您的请求以在闭包内使用它。您也可以使用 $q->orWhere 在其中传递函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)