Php 多对多关系重复条目

Php 多对多关系重复条目,php,doctrine-orm,Php,Doctrine Orm,我有两个实体通过多对多关系连接起来。例如,假设我的实体是DRIVER和CAR。一个司机可以有多辆车,一辆车可以有多个司机 在我的驱动程序实体上,我有: /** * @ORM\ManyToMany(targetEntity="CARS") * @ORM\JoinTable(name="driver_car") protected $cars; 联接表的名称是固定的,因此我必须指定它 保存新驾驶员时,可以指定多辆车 它的工作原理很好,我有我的新司机保存在BDD,我有很多线在司机车,因为我有车指定给

我有两个实体通过多对多关系连接起来。例如,假设我的实体是DRIVER和CAR。一个司机可以有多辆车,一辆车可以有多个司机

在我的驱动程序实体上,我有:

/**
* @ORM\ManyToMany(targetEntity="CARS")
* @ORM\JoinTable(name="driver_car")
protected $cars;
联接表的名称是固定的,因此我必须指定它

保存新驾驶员时,可以指定多辆车

它的工作原理很好,我有我的新司机保存在BDD,我有很多线在司机车,因为我有车指定给我的司机

问题是它创造了新的汽车,尽管它已经存在于汽车中

例如,如果我在DB中有两辆车,那么假设:

诽谤罪 1 |法拉利 2 |波什 现在我创建了一个名为FOO的新司机,并将他与法拉利联系起来,我最终拥有:

诽谤罪 1 |法拉利 2 |波什 3 |法拉利 以分贝为单位

仅供参考,我使用Symfony2表格保存或更新实体

我尝试过使用不同的“级联”值,但没有效果。 有人能解释一下我做错了什么吗


感谢您抽出时间:)

我发现我的问题来自哪里

我正在使用表单验证我的对象,但它的配置很差

之前:

            ->add('CARS', CollectionType::class, array(
            'entry_type' => CARSTYPE::class,
            'allow_add'  => true,
            'allow_delete' => true,
            'by_reference' => false
        ))
之后:

    ->add('CARS', EntityType::class, array(
        'class' => 'CARS',
        'invalid_message' => 'Cannot find car.',
        'multiple' => true,
    ))

我发现我的问题来自哪里

我正在使用表单验证我的对象,但它的配置很差

之前:

            ->add('CARS', CollectionType::class, array(
            'entry_type' => CARSTYPE::class,
            'allow_add'  => true,
            'allow_delete' => true,
            'by_reference' => false
        ))
之后:

    ->add('CARS', EntityType::class, array(
        'class' => 'CARS',
        'invalid_message' => 'Cannot find car.',
        'multiple' => true,
    ))