想象一个Tag
实体可以链接到整个应用程序中的许多不同对象。
示例:
Tag
name
Post
body
tag
我能够维护一个Post
列表,其中附带Tag
可以手动输入(我的意思是不从现有列表中选择)。
为此,我使用带有DataTransformer的表单,因此我的标签可以转换为对象,甚至绑定到数据库中的现有标签。
public function reverseTransform($tagString)
{
if (!$tagString) {
return null;
}
$tag = $this->tagManager->getOrCreateTagFromString($tagString);
if (null === $tag) {
throw new TransformationFailedException();
}
return $tag;
}
我的问题是,当我提交链接到相同新标签的Post
集合表单时
Post1 -> "New tag 1"
Post2 -> "New tag 1"
我的变换器给了我2个新对象,因为它无法知道我们发布了重复的对象。
Post1
tag -> "New tag 1" #1234 < Different
Post2
tag -> "New tag 1" #1235 < managed entities
如何防止此重复和/或在刷新之前静默合并对象?
目前我正在运行一个“dedoublonning”功能,然后每个常规持续存在,不是你想的那么理想。