2017-02-17 29 views
1

我正在創建一個API來搜索用戶。我在口才這樣做,我想知道是否有任何的方式來創建這樣用洋洋灑灑的查詢:在Eloquent查詢中使用連接列

SELECT * FROM users WHERE CONCAT('first_name', ' ', 'last_name') LIKE '%searchstring%' OR email LIKE '%searchstring%'; 

有沒有辦法用雄辯查詢生成器來做到這一點?

我想這樣做的本質是這樣的:

$users = User::where('CONCAT(first_name, " ",last_name)', 'LIKE', '%searchstring%')->orWhere('email','LIKE','%searchstring%')->orderBy($ob, $dir)->paginate($perPage); 

這導致Column not found: 1054 Unknown column 'CONCAT(first_name," ",last_name)' in 'where clause'

回答

0

我能找到這個問題的答案,而解決辦法是各地使用DB::raw方法列名稱。 工作的解決方案是這樣的:

$users = User::where(DB::raw('CONCAT(first_name, " ",last_name)'), 'LIKE', '%searchstring%')->orWhere('email','LIKE','%searchstring%')->orderBy($ob, $dir)->paginate($perPage); 
0

試試這個:

$users = User::where(\DB::raw('CONCAT(first_name, " ",last_name)'), 'LIKE', '%searchstring%')->orWhere('email','LIKE','%searchstring%')->orderBy($ob, $dir)->paginate($perPage);