私はSymfony 2の本のセキュリティの章に従っています。多対多テーブルのレコードを削除する
テーブルUSERS
とGROUPS
の例があります。 USERS
とGROUPS
の間にの関係が多対多であり、データベースにUSERGROUPS
という名前のテーブルが作成されます。私が欲しいもの
には、例えば、USERGROUPS
からレコードを削除することです:
DELETE from USERGROUPS WHERE user_id = 1 and group_id = 1
私はUSERGROUPS.php
テーブルファイルを持っていないので、私はこれを行う方法を知りません。 DQLを使用して
は、例えば、私はこれを行うことができるようにしたい:
$em = $this->getDoctrine()->getEntityManager();
$query = $em->createQuery(
'DELETE FROM AcmeStoreBundle:UserGroups ug WHERE ug.user_id = :user
and ug.group_id = :group'
)->setParameter(array('user' => $userid, 'group' => $groupid));
私はあなたがアイデアを得る願っています。
次に、このテーブルから削除するにはどうすればよいですか?
イーサンを両方のエンティティから
remove
メソッドを呼び出す必要があります。どうもありがとうございます!うまくいった: symfonyがこのメソッドを自動的に生成しなかったのはなぜですか?私はあなたの多くのテーブルから何かを削除することが本当に一般的な仕事だと信じています。 –ええ、私はいつもsymfonyが(addMethodsを生成するので)removeメソッドも生成しないのかどうか疑問に思ってきました。それはうまくいった! – Ethan
このユーザーに関連する多対多テーブルに1,000,000レコードがあり、それを削除する必要がある場合はどうなりますか? Doctrineはすべてのレコードをロードしますか? –