首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >银色条纹4-默认添加many_many关系

银色条纹4-默认添加many_many关系
EN

Stack Overflow用户
提问于 2022-06-02 05:03:16
回答 1查看 18关注 0票数 0

默认情况下可以添加many_many关系吗?

我正在使用子网站模块,每个站点都有一个博客,但是我们希望能够标记BlogPosts,这样它们就可以出现在任何其他子站点上:

  • 子网站1
  • 子站点2
  • 子网站3

我将此设置作为BlogPost的扩展:

代码语言:javascript
复制
private static $many_many = [
        'Subsites' => Subsite::class       
    ];

$fields->addFieldToTab('Root.PostOptions', 
            TagField::create('Subsites','Show on other sites',Subsite::get(),$this->owner->Subsites())
                ->setShouldLazyLoad(false) 
                ->setCanCreate(false) 
            ); 

如何在创建BlogPost时将当前子网站添加为默认关系,以便Subsite2下的每个BlogPost默认都有一个“Subsite2”标记,即使用

代码语言:javascript
复制
Subsite::get_by_id(SubsiteState::singleton()->getSubsiteId())

如果这没有道理的话,我会尝试解释更多:)

EN

回答 1

Stack Overflow用户

发布于 2022-07-05 12:37:45

您可以尝试在BlogPost的onBeforeWrite函数中添加关系,只需调用$this->Subsites()->add($subsiteObject)即可。要确保对象是真正创建的,而不仅仅是更新的,您可以检查对象id。如果还没有,则该对象是新创建的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72470902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档