Php laravel 5搜索查询问题
我需要从DB表中搜索过滤不同的列,这些过滤列是groupA、groupb和groupC,每列在DB表中有以下值之一Php laravel 5搜索查询问题,php,mysql,laravel-5,Php,Mysql,Laravel 5,我需要从DB表中搜索过滤不同的列,这些过滤列是groupA、groupb和groupC,每列在DB表中有以下值之一high、low、medium 但前端用户有另一个名为“none”的值,但该值不包含在数据库中 这是我目前的问题 public function show($groupA, $groupB, $groupC) { $FodMaps = FodMap::where('groupA', '=', $groupA)->where('groupB', '='
high、low、medium
但前端用户有另一个名为“none”的值,但该值不包含在数据库中
这是我目前的问题
public function show($groupA, $groupB, $groupC)
{
$FodMaps = FodMap::where('groupA', '=', $groupA)->where('groupB', '=', $groupB)->where('groupC', '=', $groupC)->get();
return $FodMaps;
}
我想要的是,如果用户搜索的值不包含在db中(高/低/中等),它应该搜索除具有不匹配值的列之外的其他列
例:
如果用户以上述方式输入,则应根据值显示结果
但是如果用户输入如下内容
由于groupC列中的“none”值不存在,它应该只搜索其他两列,而不考虑groupC的值
请注意您可以像这样动态添加查询条件
public function show($groupA, $groupB, $groupC)
{
$query = FodMap::query();
if ($groupA !== 'none') {
$query->where('groupA', '=', $groupA)
}
if ($groupB !== 'none') {
$query->where('groupB', '=', $groupB)
}
if ($groupC !== 'none') {
$query->where('groupC', '=', $groupC)
}
return $query->get();
}
您可以像这样动态添加查询条件
public function show($groupA, $groupB, $groupC)
{
$query = FodMap::query();
if ($groupA !== 'none') {
$query->where('groupA', '=', $groupA)
}
if ($groupB !== 'none') {
$query->where('groupB', '=', $groupB)
}
if ($groupC !== 'none') {
$query->where('groupC', '=', $groupC)
}
return $query->get();
}