Я добавляю поле, похожее на тег, к своему блогу и блогу, используя Blogtag.php
вот мои изменения для моего нового поля:
1.добавить 'Subs' => BlogTag::class
к has_many в моем блоге.
2. добавление 'Subs' => BlogTag::class
к many_many в BlogPost.
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_subs) в моем 'blogpost_tags' таблицы и когда я щелкаю тег или подчиненный элемент, оба из которых отображаются на странице (domainname.com/blog/tags/test: он содержит сообщения, для которых тег является тестовым, а суб-элемент - тестовым)