[英]Laravel Eloquent - belongs to many through
我有站点,页面,元素和element_creators表,如下所示:
sites
id
...
pages
id
site_id
...
elements
id
page_id
...
element_creators
id
element_id
...
我可以检索链接到页面的元素创建者
$this->belongsToMany('ElementCreator', 'elements', 'page_id', 'element_creator_id');
是否有一种简单的方法(通过其页面)来检索特定站点的所有元素创建者?
谢谢 !
您可以尝试以下方法:
$site = Site::with('pages.elementCreators')->find(1); // 1 is id for example
然后,您可以使用以下命令访问所有elementCreators
:
$elementCreators = $site->pages->fetch('elementCreators');
现在,我将其用作临时解决方案,希望找到更好的方法:
public function elementCreators()
{
$elementCreators = array();
foreach ($this->pages as $page) {
foreach ($page->elementCreators as $elementCreator) {
$elementCreators[$elementCreator->id] = $elementCreator;
}
}
return \Illuminate\Database\Eloquent\Collection::make($elementCreators);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.