我需要这样的东西:
public function myFunc(Request $request) {
$search = $request->input('searchString');
$myOjb = myModel::where('field1', 'like', '%' .$search . '%')
->orwhere('field2', 'like', '%' .$search . '%')
->orwhere('field3', 'like', '%' .$search . '%')
->orwhere('field4', 'like', '%' .$search . '%')
->where('field5','yes')
}
我需要提供任何like
为真的数据,而字段field5 = yes
必须是。
问题是:即使找不到field5
,它也会为我提供数据
如何正确过滤?
不够了解:Advanced Wheres
答案 0 :(得分:1)
您可以通过在where()
上传递闭包来执行以下操作myModel::where('field5', 'YES')->where(function ($q) use($search) {
^^^
return $q->where('field1', 'like', '%' .$search . '%')
->orwhere('field2', 'like', '%' .$search . '%')
->orwhere('field3', 'like', '%' .$search . '%')
->orwhere('field4', 'like', '%' .$search . '%');
});
EDIT
您需要使用use
答案 1 :(得分:1)
试试这个,
$myOjb = myModel::where('field1', 'like', '%' .$search . '%')
->where('field5','yes')
->where(function ($query) {
$query->where('field2', 'like', '%' .$search . '%')
->orWhere('field3', 'like', '%' .$search . '%')
->orWhere('field4', 'like', '%' .$search . '%');
});