2017-01-05 28 views
0

我有兩個表 - 求職者和簡歷。我嘗試通過輸入1.「first name」,2.「last name」和3.「first name + last name」來實現三個搜索選項。我目前的代碼如下:選擇加入在哪裏和orWhere在Laravel 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

字段名稱不應包含在',我想。 (CONCAT(jobseekers.first_name,'',jobseekers.last_name),'LIKE','%')與WHERE CONCAT(field1,'',filed2)類似'%$ q%'' –

+0

- 。$ q '%')。我得到錯誤:調用未定義的函數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