当应用程序从Symfony 2.8更新到Symfony 3.4时,_format
的处理发生了变化,所以我想更改@Template以进行渲染,如下面的帖子所示
但是,由于分支以父格式更改无法指定返回BaseStaffController.php的trick文件。
有什么好方法吗?
如何使用@Template((引用多个分支
控制器
/**
* @Route("/staff/", defaults={"_format"="html"}, requirements={"_format"="html|csv"})
* @Method("GET")
*
* @Template("@AppBundle/Hq/Analytics/staff.html.twig")
*/
public function staffAction(Request $request)
{
return parent::staffAction($request);
}
BaseStaffController
/**
*/
public function staffAction(Request $request)
{
return array(
'searchForm' => $searchForm->createView(),
'pagination' => $pagination,
'no' => $no
);
}
如果parent::staffAction
只是返回要传递给trick模板的变量数组,那么您可以简单地将其传递给render
方法。
/**
* @Route("/staff/", defaults={"_format"="html"}, requirements={"_format"="html|csv"})
* @Method("GET")
*
*/
public function staffAction(Request $request)
{
return $this->render("Hq/Analytics/staff.html.twig", parent::staffAction($request));
}
根据@ArleighHix的回答,这是一个我实际上可以移动的代码。
/**
* @Route("/staff/{_format}", defaults={"_format"="html"}, requirements={"_format"="html|csv"})
* @Method("GET")
*
*/
public function staffAction(Request $request, $_format)
{
return $this->render('@AppBundle/Hq/Analytics/staff.' . $_format . '.twig', parent::staffAction($request, $_format));
}