vivait/tag-bundle

此包已弃用且不再维护。未建议替代包。

标签包

1.0.1 2019-02-04 14:04 UTC

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);