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