2017-05-19 81 views
1

我有這個疑問與左連接是在phpMyAdminLaravel查詢構建

SELECT * FROM `items` 
LEFT JOIN countries ON items.category_id = countries.id 
where items.id = 20 

我試圖重現它在Laravel這樣

$defaultCountry = DB::table('items') 
       ->leftJoin('countries', 'countries.id', '=', 'items.country_id') 
       ->where('items.id', 20) 
       ->select('items.*', 'countries.*') 
       ->get(); 

返回數據,但是當我執行它,我有錯誤

試圖獲得非客體屬性...第6行

6號線有

{!! $defaultCountry->symbol !!} 

符號是象徵defaultCountry這是在表countries

當我做var_dump($defaultCountry)我看到所有的數據是可變的。爲什麼我得到這個錯誤?

回答

2

是您試圖訪問一個對象變量的集合,如果你想只得到一個註冊,您可以換get()first()問題:

$defaultCountry = DB::table('items') 
       ->leftJoin('countries', 'countries.id', '=', 'items.country_id') 
       ->where('items.id', 20) 
       ->select('items.*', 'countries.*') 
       ->first(); 

然後你就可以訪問到的變量因爲現在不是一個結果集合。

在您要訪問的集合數據視圖中的情況下,你應該循環中刀片的結果看一個foreachfor

@foreach($defaultCountry as $country) 
    {!! $country->symbol !!} 
@endforeach 
+1

那麼簡單。非常感謝你!首先會正常工作。我沒有另一個符號顯示,所以它只是第一個()。只要SO允許我,我會盡快接受答案。 – Ivan