Tôi đang theo dõi chương bảo mật của cuốn sách Symfony 2.Xóa bản ghi trong bảng nhiều người
Có một ví dụ với bảng USERS
và GROUPS
. Có mối quan hệ nhiều đến nhiều giữa USERS
và GROUPS
, tạo cơ sở dữ liệu trong bảng có tên là USERGROUPS
.
Những gì tôi muốn là để xóa một bản ghi từ USERGROUPS
, ví dụ:
DELETE from USERGROUPS WHERE user_id = 1 and group_id = 1
Tôi không biết làm thế nào để làm điều này vì tôi không có một tập tin USERGROUPS.php
bảng.
Sử dụng DQL, ví dụ, tôi muốn để có thể làm điều này:
$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));
tôi hy vọng bạn sẽ có được ý tưởng.
Sau đó, làm cách nào để xóa khỏi bảng này?
Ethan. Cảm ơn bạn rất nhiều! Nó hoạt động :) Tại sao symfony không tự động tạo phương thức này? Tôi tin rằng đó là một nhiệm vụ thực sự phổ biến để xóa một cái gì đó từ nhiều của bạn đến nhiều bảng. –
Vâng, tôi luôn tự hỏi tại sao symfony không tạo ra các phương thức remove (vì nó tạo ra addMethods). Vui mừng nó đã làm việc! – Ethan
Điều gì xảy ra nếu có 1.000.000 bản ghi trong bảng nhiều người liên quan đến người dùng này và tôi chỉ cần xóa một bản ghi? Doctrine sẽ tải tất cả các bản ghi? –