Существует некоторое базовое понимание/теория, в которой я отсутствует. Я не понимаю разницы между этими вызовами функций:
$distributors = $store->distributors();
$distributors = $store->distributors;
$distributors = $store->distributors()->get();
$distributors = $store->distributors->get();
То, что я пытаюсь сделать, состоит в том, чтобы получить список дистрибьюторов для магазина (отношения многих и многих), и они получают список дистрибьюторов пива в один гигантский список.
foreach ($distributors as $distributor)
{
$available_beers = array_merge($distributor->beers(), $available_beers);
}
Я не знаю, если это лучший способ сделать это, и я не могу заставить его работать. Как и в первом списке методов, я не знаю, нужна ли мне ->$beers
или ->$beers()
Обновление
Спасибо всем, кто ответил! Это будет хорошей ссылкой для меня в будущем. Мой самый большой урок заключался в различии между возвратом коллекции, а также возвратом объекта построителя запросов/отношения. Для дальнейшего обращения к тем, кто находит этот вопрос, вот что я установил в своем контроллере:
$store = $this->store->find($id)->first();
$distributors = $store->distributors;
$beers = [];
foreach ($distributors as $distributor){
$beers = array_merge($distributor->beers->lists('name', 'id'), $beers);
}