Php 静默合并重复实体

Php 静默合并重复实体,php,doctrine-orm,symfony,symfony-forms,Php,Doctrine Orm,Symfony,Symfony Forms,设想一个标记实体可以链接到整个应用程序中的许多不同对象 例如: Tag name Post body tag 我可以维护一个带有标签的Post列表,可以手动输入(我的意思是不从现有列表中选择) 为此,我使用带有的表单,这样我的标记可以转换为对象,甚至绑定到数据库中的现有对象 public function reverseTransform($tagString) { if (!$tagString) { return null; }

设想一个
标记
实体可以链接到整个应用程序中的许多不同对象

例如:

Tag
    name

Post
    body
    tag
我可以维护一个带有标签的
Post
列表,可以手动输入(我的意思是不从现有列表中选择)

为此,我使用带有的表单,这样我的标记可以转换为对象,甚至绑定到数据库中的现有对象

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
Post1
标签->“新标签1”#1234<不同
邮政2
标签->“新标签1”#1235<托管实体
在刷新之前,如何防止复制和/或以静默方式合并对象?


现在,我正在运行一个“dedoublonning”函数,然后再执行每个常规操作,你猜这并不理想