0

@Route私のコントローラーのメソッドには、次の注釈があります。

/**
 * @Route("/{id}/edit", name="section_edit")
 * @Route("/{id}/duplicate", name="section_duplicate")
 * @Method({"GET", "POST"})
 * @Template
 */
public function editAction(Request $request, $id)
{
}

どのルートが呼ばれたかを発見することは可能ですか?editまたはduplicate

両方のルートのロジックが類似しているため、これを実行しました。指定されたパラメーターで同じメソッドを呼び出す2つのアクションを作成できますが、1つのメソッドでそれを実行し、 /値でいくつかの$methodパラメーターを定義することは可能かどうか疑問に思います。editduplicate

4

1 に答える 1

0

解決策は非常に簡単です-パターンとは関係なく追加defaultsします-以下のように:

/**
 * @Route("/{id}/edit", name="section_edit", defaults={"method" : "edit"})
 * @Route("/{id}/duplicate", name="section_duplicate", defaults={"method" : "duplicate"})
 * @Method({"GET", "POST"})
 * @Template
 */
public function editAction(Request $request, $id, $method)
{
    var_dump($method); // gives `edit` or `duplicate`
}
于 2013-01-07T11:02:28.463 に答える