2017-10-18 140 views
0

我的目標是處理這些錯誤。我知道這個錯誤是在查詢返回值爲null時產生的。在Laravel旁路「嘗試獲取非對象的屬性」錯誤

我通過使用下面的代碼得到trying to get property of non-object錯誤。

foreach($furniture as $fur) 
{ 
    Furniture Name: {{$fur->fur_name}} 
    Furniture Country : {{ App\Country::where('id', $fur->country_id)->first()->country_name }} 
} 

經過在互聯網上的一些研究,我使用下面的代碼,但仍然不成功,錯誤仍然存​​在。

foreach($furniture as $fur) 
{ 
    Furniture Name: $fur->fur_name 
    Furniture Country : {{ App\Country::where('id', $fur->country_id)->first()->country_name ? App\Country::where('id', $fur->country_id)->first()->country_name : "null/no record"}} 
} 

回答

0

嘗試以下操作:

foreach($furniture as $fur) 
{ 
    Furniture Name: $fur->fur_name 
    Furniture Country : {{ App\Country::where('id', $fur->country_id)->first() ? App\Country::where('id', $fur->country_id)->first()->country_name : "null/no record"}} 
} 

它不建議直接運行的查詢從您的觀點。相反,將查詢移入控制器並將結果傳遞給視圖。

+0

直向前的解決方案,這正是我正在尋找的。謝謝你的建議。 – learnprogramming

0

更簡單的方法(需要的PHP 7. *):

foreach($furniture as $fur) 
{ 
    Furniture Name: $fur->fur_name 
    Furniture Country : {{ App\Country::where('id', $fur->country_id)->first()->country_name ?? "No record" }} 
} 

??是一個空合併運算符需要結合isset()使用三元組的常見情況。

請注意@Camilo表示,不建議直接從您的視圖中運行查詢,而是將其重定位到您的控制器中,並且僅在您的視圖中通過結果

相關問題