Laravel查询不适用于多个地方

时间:2019-04-20 09:43:41

标签: mysql sql laravel-5

我必须实现搜索功能。如下所示,我有一个搜索字段,即文本,它将搜索名称,描述和预算。以及其他搜索字段,例如cid,状态。因此,当我仅使用搜索或cid字段来搜索其工作正常时,但是当我将它们全部一起使用(搜索,cid,状态)时,它无法正常工作,则只能在搜索字段中进行搜索。不知道问题出在哪里。以下是我的代码:

        $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();

0 个答案:

没有答案