У меня есть несколько вложенных отношений hasMany
в Laravel 5.6. Я ищу эффективный способ суммирования атрибута на каждом из самых внешних узлов отношений.
Например, каждый из них связан с помощью hasMany
.
Country
-> States
-> Cities
-> Streets
-> Houses
Если я хочу суммировать все House->bedrooms
в данном Country
, каков наиболее эффективный способ?
На данный момент у меня есть загружаемый с нетерпением Country
в памяти следующим образом:
$country->load('states.cities.streets.houses');
И я попытался:
$country->states->cities->streets->houses->pluck('bedrooms')->sum()
Но получил:
Свойство [cities] не существует в этом экземпляре коллекции.
Я мог бы сделать это с помощью foreach
циклов по различным отношениям, но кажется, что в Laravel должен быть более эффективный кодовый способ. Что мне не хватает?
Спасибо
withCount()
: laravel.com/docs/5.6/ ? - person Oluwatobi Samuel Omisakin   schedule 06.06.2018