1

我已经通过作曲家安装了FPNTagBundle 。

        $tagArray=array('uno','due');
        $tagManager = $this->get('fpn_tag.tag_manager');
        $tagsObj = $tagManager->loadOrCreateTags($tagArray);
        $tagManager->replaceTags($tagsObj,$entity);
        $em->persist($entity);
        $em->flush();

我收到此错误,可避免标签持续存在:

使用参数 {"1":null,"2":"uno","3" 执行 'INSERT INTO Tag (name, slug, created_at, updated_at) VALUES (?, ?, ?, ?)' 时发生异常:空,“4”:空}:

SQLSTATE [23000]:违反完整性约束:1048 列“名称”不能为空 500 内部服务器错误 - DBALException

调用 $tag = parent::createTag($name); 似乎有问题 在 TagManager.php 的第 35 行

有任何想法吗?五。

4

1 回答 1

0

我在我的项目中遇到了同样的问题。问题是 Tag 实体阻止了BaseTag( FPN\TagBundle\Entity\Tag) 类中构造函数的执行。我很确定您的 Tag 类有自己的构造函数,并且您不会调用父类,它会设置实体中缺少的 name 属性。

这是一个示例自定义 Tag 类,它调用父构造函数来设置名称:

use FPN\TagBundle\Entity\Tag as BaseTag;

class Tag extends BaseTag
{
    protected $tagging;
    public function __construct($name = null)
    {
        parent::__construct($name);
        $this->tagging = new ArrayCollection();
    }
}
于 2013-09-12T11:46:56.437 回答