2

我想创建具有相同 URL 的 API,http://stackoverflow.com/profile但具有不同的请求方法,如POST, PUT,GET等。我想根据方法类型执行不同的操作。一种方法是编写用于比较方法和重定向的通用操作

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

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

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 回答