在另一个数据透视表中添加相同的数据(向使用标记数据的Blogpost添加字段)

时间:2019-06-14 17:03:28

标签: pivot-table silverstripe silverstripe-4

我通过使用Blogtag.php将类似标签的字段添加到我的BlogPost和Blog中 这是我对新字段的更改:

  • 1。将'Subs' => BlogTag::class添加到我的Blog中的has_many中。

  • 2。将'Subs' => BlogTag::class添加到BlogPost中的many_many中。

  • 3。将$subs = $parent instanceof Blog ? $parent->Subs() : BlogTag::get();添加到BlogPost。

  • 4。将TagField::create('Subs', _t(__CLASS__ . '.other', 'other tags'), $subs, $this->Subs())->setCanCreate($this->canCreateSubs())->setShouldLazyLoad(true)添加到BlogPost。

  • 5。将public function canCreateSubs($member = null){$member = $this->getMember($member); $parent = $this->Parent(); if (!$parent || !$parent->exists() || !($parent instanceof Blog)) {return false;} if ($parent->isEditor($member)) {return true;} if ($parent->isWriter($member)) {return true;} return Permission::checkMember($member, 'ADMIN');}添加到BlogPost。

  • 6。将foreach ($this->Subs() as $sub) {$sub->BlogID = $this->ParentID; $sub->write();}添加到BlogPost。

在这些之后,我可以循环$ Subs在模板中,并且Subs在“ blogtag”表中创建,并且我有一个名为“ blogpost_subs”的新数据透视表,但是我需要在“ blogpost_tags”中创建该数据(blogpost_subs行)表格,然后单击页面中显示的标签或子标签(domainname.com/blog/tags/test:它包含标签为test且子标签为test的帖子)

0 个答案:

没有答案