2017-04-16 60 views
0

我在Laravel 5.4上有一個查詢生成器問題,Laravel:查詢生成器選擇在哪裏Like語句

我想只選擇where語句上的某個字段。

,如果我不把WHERE語句功能的選擇功能很好地執行,但是當我把在那裏同樣的功能則似乎選擇功能不能正常工作,它會自動選擇所有(*)

據透露,用戶和地址表有'名字'字段。它只從用戶表中選擇名稱。它很好地工作。

DB::table('user') 
-leftJoin('address', 'user.id', '=', 'address.user_id') 
->select('user.name') 
->paginate(1); 

,但是這是不工作

DB::table('user') 
-leftJoin('address', 'user.id', '=', 'address.user_id') 
->select('user.name') 
->where('user.name', 'LIKE', '%jhon%') 
->paginate(1); 

我怎麼做到這一點? 任何anwer將高度讚賞!

+0

不應該'jhon'是'john'嗎? – linktoahref

回答

1

請寫下。這將解決您的問題

DB::table('user') 
->leftJoin('address', 'user.id', 'address.user_id') 
->where('user.name', 'LIKE', '%jhon%') 
->select('user.name') 
->get(); 
+0

仍然無法正常工作,select語句似乎不適用:9 – Angger

+0

你能否給我你的表結構? @Angger –

+0

@Angger請在數據庫中查看'jhon'中是否有任何名稱。我檢查我的查詢。它在我的系統中工作得很好。 –

0

它的工作。給它一個測試。

DB::table('user') 
->leftJoin('address', 'address.user_id', '=', 'user.id') 
->where('user.name', 'like', '%jhon%') 
->select('user.name') 
->get();