我已经通过作曲家安装了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();
我收到此错误,以避免标记持续存在:
执行'INSERT INTO Tag(名称,slug, created_at,updated_at)VALUES(?,?,?,?)'与params { “1”:空, “2”: “UNO”, “3”:空, “4”:空}:
SQLSTATE [23000]:完整性约束违规:1048列'名称' 不能为null 500内部服务器错误 - DBALException
调用$ tag = parent :: createTag($ name)似乎是一个问题;在TagManager.php的第35行
有什么想法吗? 诉
答案 0 :(得分: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();
}
}