Laravel запрос не работает с несколькими где - PullRequest
0 голосов
/ 20 апреля 2019

Я должен реализовать функцию поиска. Как показано ниже, у меня есть одно поле поиска, которое является текстовым, и оно будет искать по названию, описанию и бюджету. И другие поля поиска, такие как 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...