Я должен реализовать функцию поиска. Как показано ниже, у меня есть одно поле поиска, которое является текстовым, и оно будет искать по названию, описанию и бюджету. И другие поля поиска, такие как cid, status. Таким образом, когда я использую только поле поиска или только поле cid для поиска его работы нормально, но когда я использую все их вместе (search, cid, status), оно не работает нормально, тогда это только поиск через поле поиска. Не знаю, где проблема. Вот мой код:
$projects = Project::where(['is_active'=>1])
->with('customer')
->withCount(['inactiveTask', 'activeTask',
'completeTask']);
if(@$request->get('search')!="")
{
$search = $request->get('search');
$projects = $projects ->Where('name', 'LIKE', "%{$search}%")
->orWhere('description', 'LIKE', "%{$search}%")
->orWhere('budget', 'LIKE', "%{$search}%");
}
if(@$request->get('cid')!="")
{
$projects = $projects->where(['customer_id'=>$request->get('cid')]);
}
if(@$request->get('status')!="")
{
$projects = $projects->where(['status'=>$request->get('status')]);
}
if(@$request->get('budget-from')!="" && @$request->get('budget-to')!="")
{
$projects = $projects->whereBetween('budget', [$request->get('budget-from'), $request->get('budget-to')]);
}
$projects->get();