Я использую Eloquent ORM и хочу настроить загрузку, чтобы запросить как можно меньше данных.
У меня есть три таблицы countries
, states
и cities
, и яхочу получить все штаты и города, которые есть в определенной стране, без дополнительной информации об этой стране.
Мои модели:
Страна
public function states () {
return $this->hasMany(State::class);
}
Штат
public function country () {
return $this->belongsTo(Country::class);
}
public function cities () {
return $this->hasMany(City::class);
}
Город
public function state () {
return $this->belongsTo(State::class);
}
Например, получение всех штатов и городов в США.Я хотел бы получить данные, как показано ниже.
[
{
id: 1,
name: 'California',
cities: [
{
id: 1,
name: 'Los Angeles'
}
]
}
]
Как мне добиться этого, используя только помощники Eloquent ORM, без where
или необработанный SQL?