繁体   English   中英

Laravel Eloquent-属于许多人

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM