2017-01-05 3 views
0

У меня есть две таблицы - ищущие работу и резюме. Я пытаюсь выполнить три варианта поиска - введя 1. «имя», 2. «фамилию» и 3. «имя + фамилия». Мой текущий код, как показано ниже:Выберите Присоединиться Где и где находится в Ларавеле 5

$q = \Request::get('keyword'); 
    $data['resume'] = Resume::join('jobseekers', 'jobseekers.user_id', '=', 'resumes.user_id') 
     ->where('jobseekers.first_name','like','%'.$q.'%') 
     ->orWhere('jobseekers.last_name','like','%'.$q.'%') 
     ->orderBy('resumes.updated_at','desc')->paginate(50); 

Используя мой texbox (ключевые слова), когда я искать только последний/имя, он отлично работает. Однако, когда я ввожу как первое + имя в текстовое поле, он не показывает результата.

Просьба поделиться мной, как этого достичь.

ответ

0

Использование CONCAT():

->orWhere(DB::raw("CONCAT(jobseekers.first_name, ' ', jobseekers.last_name)"), 'LIKE','%'.$q.'%'); 
+0

Я использую это: $ данных [ 'резюме'] = Резюме :: join ('jobseekers', 'jobseekers.user_id', '=', 'resumes.user_id') -> orWhere (DB :: raw ("CONCAT ('jobseekers.first_name', '', 'jobseekers.first_name')"), «LIKE», «%». $ Q. '%'); Но я получил ошибку: неопределенная переменная: q – Naren

+0

имя поля не должно быть вложено в '', я думаю. это точно похоже на 'WHERE CONCAT (field1, '', filed2), как '% $ q%'' –

+0

-> Где (CONCAT (jobseekers.first_name, '', jobseekers.last_name), 'LIKE', '%' . $ д '%'). Я получил ошибку: вызов неопределенной функции App \ Http \ Controllers \ CONCAT() – Naren

0

Использования и где или где, как этот

$results = App\Table::select('*') 
    ->where(function ($query) use ($search_term) { 
     $query->where('column3', 'like', $search_term.'%') 
       ->orWhere('column4', 'like', $search_term.'%') 
    }) 
    ->orderBy('column1', 'asc') 
    ->get(); 

Надеется, что это поможет

+0

Он работает только с именем и именем, но при вводе имени с фамилией он ничего не отображает. – Naren

Смежные вопросы