方法调用之间的差异$model->relation();和$model>关系;
这里有一些基本的理解/理论,我错过了。我不明白这些函数调用之间的区别:
$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);
}