【发布时间】:2015-03-29 04:26:22
【问题描述】:
这里缺少一些基本的理解/理论。我不明白这些函数调用之间的区别:
$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);
}
【问题讨论】:
标签: php arrays laravel methods