5

Doctrine 2 内の ManyToMany 関係を削除しようとしています。2 つのエンティティがあります -UserTargetGroup.

私のUserエンティティには次のものがあります。

/**
 * @ORM\ManyToMany(targetEntity="TargetGroup", inversedBy="users")
 */
private $targetGroups;

私のTargetGroupエンティティには次のものがあります。

/**
 * @ORM\ManyToMany(targetEntity="User", mappedBy="targetGroups")
 */
private $users;

私は電話しようとしています:

$user->removeTargetGroup($targetGroup);
$targetGroup->removeUser($user);

$em->persist($user);
$em->persist($targetGroup);
$em->flush();

使用される 2 つの方法は次のとおりです。

public function removeTargetGroup(Path To Bundle $targetGroups)
{
    $this->targetGroups->removeElement($targetGroups);
}

public function removeUser(Path To Bundle $users)
{
    $this->users->removeElement($users);
}

エラーは発生しませんが、削除クエリも実行しません。

助言がありますか?

4

1 に答える 1

3

Doctrine cascade propertyを見て、あなたの場合はデタッチしてください。

cascade={"detach"}両方の注釈を設定するとManyToMany、クロステーブル レコードが永続化されます。

于 2012-08-31T11:38:48.887 に答える