这里有一些我缺少的基本理解/理论.我不明白这些函数调用之间的区别:
$distributors = $store->distributors();
$distributors = $store->distributors;
$distributors = $store->distributors()->get();
$distributors = $store->distributors->get();
Run Code Online (Sandbox Code Playgroud)
我在这里要完成的是获得一个商店经销商列表(多对多的关系),他们将每个经销商的啤酒列表列入一个巨大的列表.
foreach ($distributors as $distributor)
{
$available_beers = array_merge($distributor->beers(), $available_beers);
}
Run Code Online (Sandbox Code Playgroud)
我不知道这是否是最好的方法,我无法让它工作.与第一个方法列表类似,我不知道我是否需要->$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);
}
Run Code Online (Sandbox Code Playgroud)