我的控制器方法有以下@Route
个公告:
/**
* @Route("/{id}/edit", name="section_edit")
* @Route("/{id}/duplicate", name="section_duplicate")
* @Method({"GET", "POST"})
* @Template
*/
public function editAction(Request $request, $id)
{
}
是否有可能发现,哪条路线被召唤? edit
或duplicate
?
我这样做是因为两条路线的逻辑都是相似的。我可以创建两个将使用指定参数调用相同方法的操作,但我想知道是否可以使用一个方法执行此操作并使用$method
/ edit
值定义一些duplicate
参数
答案 0 :(得分:0)
解决方案非常简单 - 添加defaults
与模式无关 - 如下所示:
/**
* @Route("/{id}/edit", name="section_edit", defaults={"method" : "edit"})
* @Route("/{id}/duplicate", name="section_duplicate", defaults={"method" : "duplicate"})
* @Method({"GET", "POST"})
* @Template
*/
public function editAction(Request $request, $id, $method)
{
var_dump($method); // gives `edit` or `duplicate`
}