vivait / tag-bundle
此包已弃用且不再维护。未建议替代包。
标签包
1.0.1
2019-02-04 14:04 UTC
Requires
- fpn/tag-bundle: ~0.9
This package is auto-updated.
Last update: 2024-01-14 18:29:01 UTC
README
此包需要 FPN\TagBundle
AppKernel
new FPN\TagBundle\FPNTagBundle(),
new Vivait\TagBundle\VivaitTagBundle(),
Composer.json
"require": { //... "vivait/tag-bundle":"dev-master" },
使用方法:实体需要实现 Vivait/Entity/Taggable 和以下方法
public function getTags()
{
$this->tags = $this->tags ?: new ArrayCollection();
return $this->tags;
}
public function getTaggableType()
{
return 'finance_tag';
}
public function getTaggableId()
{
return $this->getId();
}
使用前必须首先初始化标签管理器
$tagManager = $this->get('fpn_tag.tag_manager');
$tagManager->loadTagging($entity);
当添加新标签时 - 注意您不能添加重复项,否则 Doctrine 会发出关于重复键的错误
$tag = $tm->loadOrCreateTag($this->tag);
if(!$finance->getTags()->contains($tag)) {
$tm->addTag($tag,$finance);
}
$em->persist($finance);
$em->flush();
$tm->saveTagging($finance);
当删除标签时 - 您仍然需要加载标签管理器
$tm = $this->tag_manager;
$em = $this->em;
$tm->loadTagging($finance);
$tag = $tm->loadOrCreateTag($this->tag);
$tm->removeTag($tag, $finance);
$em->persist($finance);
$em->flush();
$tm->saveTagging($finance);