私はSymfonyの人とグループのアプリケーションを持っています。そこでは人が複数のグループのメンバーシップを持っているかもしれません。グループから人を削除するために、私は現在、「groupMembers」モジュールに「delete」メソッドを取り、多対多のエンティティ「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]
このアクションを実行するには、ユーザーがログインする必要があるため、モジュールのsecurity.ymlでsfGuardを使用して制限しました。
remove:
is_secure: true
したがって、「削除」リンクをクリックすると、ログインしていないユーザーはログイン画面に移動しますが、「送信」をクリックすると、リクエストは「削除」ではなく「取得」になります。これは、同様のadd_to_groupを意味します。代わりにルートが呼び出されます!
add_to_group:
url: /group-membership/:group_id/:person_id
param: { module: groupMembers, action: create }
...
sfGuardに削除アクションをエミュレートさせてパラメーターを適切に渡す方法はありますか、それとも別のルートを使用する必要がありますか?