我在主计长中有以下方法:
/**
* @Route("/add", name="item_add")
* @Route("/edit/{id}", name="item_edit")
* @Template
*/
public function editAction(Request $request, Item $item = null)由于操作名,此方法加载edit.html.twig模板。
如果add.html.twig路由匹配,可以强制使用item_add模板吗?如果item_edit匹配,可以强制使用edit.html.twig吗?
发布于 2014-05-22 14:55:29
由jperovic提供的答案似乎是正确的,然而,IMHO,使用路线名称感觉不正确。
可以轻松地避免依赖路由名称。
下面是一个例子
/**
* @Route("/add", name="item_add")
* @Method({"GET"})
* @Template
*/
public function addAction(Request $request, Item $item = null)
{
if (null === $item) {
$item = new Item;
}
$form = $this->createForm(new ItemType, $item, [
'action' => $this->generateUrl('item_update'), // In your view?
'method' => 'POST'
]);
return [
'form' => $form->createView()
];
}
/**
* @Route("/edit/{id}", name="item_edit")
* @Method({"GET"})
* @Template
*/
public function editAction(Request $request, Item $item)
{
return $this->addAction($request, $item);
}这样,您将有两个路由执行几乎相同的操作,并发送相同的参数。
/edit/{id} => edit.html.twig
/add => add.html.twighttps://stackoverflow.com/questions/23807564
复制相似问题