重定向到具有相同网址的symfony2中的不同操作

时间:2012-09-05 10:06:46

标签: rest symfony

我想创建具有相同网址的创建API http://stackoverflow.com/profile但具有不同的请求方法,例如POSTPUTGET等。我想做基于不同的操作在方法类型上。一种方法是编写用于比较方法和使用

重定向的常用操作
$this->forward('anotherModule','anotherAction');

有没有其他方法可以检查它的方法并重定向到不同的操作而不使用一个常规操作?

1 个答案:

答案 0 :(得分: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)
{
    ...
}