Вы уже почти там.Что вы хотите сделать, это использовать State::get()
, чтобы получить список всех состояний.Затем вы добавляете with('country')
перед get()
, чтобы он был добавлен в построитель запросов.Как видите, country
- это имя отношения, которое вы хотите загрузить.После этого вы можете получить доступ ко всем свойствам country
так же, как вы можете получить доступ к свойствам вашего state
:
$states = State::with('country')->get();
foreach ($states as $state) {
echo "ID: {$state->id}, State: {$state->name}, Country: {$state->country->name}";
}
выведет что-то вроде
ID: 1, State: Vorarlberg, Country: Austria
ID: 2, State: Bavaria, Country: Germany
После некоторого исследования кажется, что при изменении первичного ключа имеет смысл добавить ключи к определению отношения:
public function country()
{
return $this->belongsTo(Country::class, 'country_id', 'country_id');
}
В противном случае отношение загружается неправильно.