搜索查询在Laravel中无法正常运行

时间:2018-01-02 09:32:36

标签: php mysql laravel

public static function searchSubmissions($request, $candidateIds = array(),$isscontact = NULL){
      $querys = DB::table('submissions')->select('submissions.*');
  if ( Input::has('candidatename') and $request->input('candidatename') != NULL){
      $querys->join('candidates','candidates.candidateid','=','submissions.candidateid');
      $querys->where('candidates.firstname', 'LIKE', '%'. $request->input('candidatename').'%')->orWhere('candidates.lastname', 'LIKE', '%'. $request->input('candidatename') .'%')->where('submissions.status','1');
  }
   $result = $querys->paginate(PAGELIMIT);

  return $result ;
}
  

这是我的搜索查询,如果我输入" john"或者" peter"在我的搜索字段中它工作正常。如果我输入全名" john peter"它对我不起作用。   在我的数据库中,我有两个字段" firstname' '姓'

1 个答案:

答案 0 :(得分:3)

我认为,您需要重构代码才能正常运行。

$names = explode(' ', $request->input('candidatename'));

if (!empty($names)) {
    foreach ($names as $name) {
        $querys = $querys->orWhere('candidates.firstname', 'LIKE', '%'. $name .'%');
        $querys = $querys->orWhere('candidates.lastname', 'LIKE', '%'. $name .'%');
    }
}

看看这个https://laravel.com/docs/5.4/queries#parameter-grouping