2014-02-10 189 views
0

我想使用laravel查詢生成器執行這個sql查詢。laravel查詢數據庫不產生預期的結果

SELECT leagues.id, leagues.name, countries.name 
FROM leagues 
INNER JOIN countries ON leagues.country = countries.id 

我有以下Laravel查詢...

$leagueinfo = DB::table('leagues') 
     ->join('countries','leagues.country', '=', 'countries.id') 
     ->select('leagues.id', 'leagues.name', 'countries.name') 
     ->get(); 

,但是當我的print_r(leagueinfo $)到屏幕上,我得到這個...

Array ([0] => stdClass Object ([id] => 1 [name] => England) [1] => stdClass Object ([id] => 2 [name] => Spain) [2] => stdClass Object ([id] => 3 [name] => Italy) [3] => stdClass Object ([id] => 4 [name] => Austria) [4] => stdClass Object ([id] => 5 [name] => Germany) [5] => stdClass Object ([id] => 6 [name] => England)) 

..看起來它只是在接收我的國家。

SQL查詢返回正確的結果...的league.id,league.name和countries.name

有沒有人有任何建議,爲什麼信息是不是來過嗎? 謝謝。

DS

回答

2

如果你看看你的結果集,你居然有ID爲好。發生了什麼是你在結果集中覆蓋你的列名,因爲兩個字段都是「名稱」。嘗試改爲:

$leagueinfo = DB::table('leagues') 
    ->join('countries','leagues.country', '=', 'countries.id') 
    ->select('leagues.id', 'leagues.name as league', 'countries.name as country') 
    ->get(); 
+0

完美。非常感謝。我會知道下次重新命名它們。看起來很明顯,當你指出它! DS – dstewart101