我想创建具有相同 URL 的 API,http://stackoverflow.com/profile
但具有不同的请求方法,如POST
, PUT
,GET
等。我想根据方法类型执行不同的操作。一种方法是编写用于比较方法和重定向的通用操作
$this->forward('anotherModule','anotherAction');
有没有其他方法可以检查它的方法并重定向到不同的操作而不使用一个通用操作?
在您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)
{
...
}