2014-04-02 144 views
0

我想執行Laravel4查詢生成器左連接。這裏是我的代碼:Laravel 4 - 查詢生成器左連接

$settings = DB::table('settings') 
->leftJoin('users', 'settings.user_id', '=', 'users.user_id')->get(); 

使用這部分代碼,我從兩個數據庫表中獲取所有字段。我想從設置表中獲取所有字段,但只是國家和貨幣字段從用戶表。有人可以幫我解決這個問題嗎?

回答

1

而不是使用->get()這是用來讓你需要使用->select()說你想要的列,然後使用get()

$settings = DB::table('settings') 
->leftJoin('users', 'settings.user_id', '=', 'users.user_id') 
->select('settings.*', 'users.country', 'users.currency')->get(); 
+0

是否需要 - > get()結束,我想將結果作爲JSON響應發送?謝謝。 – Sysrq147

+1

在這種情況下,您需要在'select'後面調用'get()'。 –

1

你可以試試這個所有列的,通過字段get()爲陣列選擇:

$settings = DB::table('settings') 
       ->leftJoin('users', 'settings.user_id', '=', 'users.user_id') 
       ->get(array('settings.*', 'users.country', 'users.currency')); 

使用->select('settings.*', 'users.country', 'users.currency')你仍然需要在最後調用get(),像這樣:

$settings = DB::table('settings') 
       ->leftJoin('users', 'settings.user_id', '=', 'users.user_id') 
       ->select('settings.*', 'users.country', 'users.currency')->get(); 
+1

謝謝你的回答! – Sysrq147

+0

不客氣:-) –