У меня есть приложение с людьми и группами в Symfony, где человек может иметь членство в нескольких группах. Чтобы удалить человека из группы, в настоящее время у меня есть действие в модуле «groupMembers», которое использует метод «удалить» и удаляет пару из объекта «многие ко многим» «group_membership». На данный момент маршрут выглядит примерно так:
remove_membership:
url: /group-membership/:group_id/:person_id
class: sfPropelRoute
options: { model: GroupMembership, type: object }
param: { module: groupMembers, action: remove }
requirements:
sf_method: [delete]
Чтобы выполнить это действие, пользователь должен войти в систему, поэтому я ограничил его с помощью sfGuard в модуле security.yml:
remove:
is_secure: true
Таким образом, после нажатия ссылки «удалить» пользователь, который не вошел в систему, попадает на экран входа в систему, но после нажатия «отправить» запрос больше не «удалить», а «получить», что означает аналогичный add_to_group Вместо этого вызывается маршрут!
add_to_group:
url: /group-membership/:group_id/:person_id
param: { module: groupMembers, action: create }
...
Есть ли способ заставить sfGuard эмулировать действие удаления и правильно передавать параметры, или мне придется использовать другой маршрут?