2

同じURLで、、、などのhttp://stackoverflow.com/profileリクエストメソッドが異なるAPIを作成したい。メソッドタイプに基づいて異なるアクションを実行したい。1つの方法は、メソッドを比較してリダイレクトするための一般的なアクションを作成することです。POSTPUTGET

$this->forward('anotherModule','anotherAction');

1つの一般的なアクションを使用せずに、そのメソッドをチェックして別のアクションにリダイレクトする他の方法はありますか?

4

1 に答える 1

3

では、routing.ymlリクエストメソッドに基づいて同じパターンに対して異なるコントローラーを定義できます

read:
    pattern: /yourUrl
    defaults: { _controller: your.controller:readAction }
    requirements:
        _method: GET

write:
    pattern: /yourUrl
    defaults: { _controller: your.controller:writeAction }
    requirements:
        _method: POST

または、注釈を使用する場合:

/**
 * @Route("/yourRoute", requirements={"_method" = "GET"})
 */
public function showAction($id)
{
    ...
}

/**
 * @Route("/yourRoute", requirements={"_method" = "POST"})
 */
public function writeAction($id)
{
    ...
}
于 2012-09-05T10:12:38.473 に答える