2016-06-09 52 views
2

enter image description here訪問多個鏈接表在Laravel 5.2

現在,所有的數據在所有4款車型我已經提供了關係作爲hasmany()belongsTo()

當我試圖從表中訪問一個特定的城市,並使用下面的代碼來關聯狀態時,它工作正常。

$citydetails=City_table::with('states')->find($id); 

現在我同時還想訪問國家的關聯國家名稱。我試着這樣做:

$citydetails=City_table::with('states','countries')->find($id); 

這給了我一個錯誤信息,我知道這樣就不會工作,因爲城市和國家都沒有涉及到對方直接,但我需要訪問這樣的數據,如果我訪問一個特定的城市,然後我想要它的狀態以及結果中的國家。

+1

我認爲你必須使用點符號來獲得嵌套關係。像'with('states.countries')'這樣的東西,會得到州和他們的國家。這就是說,假設你的狀態模型有一個處理關係的'countries()'方法。 – Jeemusu

+0

感謝哥們這個點點符號 – dollar

+0

Offtopic:你用哪個應用程序生成圖形?我只是好奇。 – Kovah

回答

3

您可以使用點符號來訪問嵌套關係。引用Laravel Documentation

爲了加載嵌套關係,您可以使用「點」語法。對於 例如,讓我們熱切加載所有的書的作者和所有的 作者個人接觸的一個雄辯的發言:

$books = App\Book::with('author.contacts')->get();

對你來說,這看起來是這樣的:

$citydetails = City_table::with('states.countries')->find($id);