将父格式从@Template更改为render



当应用程序从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));
}

相关内容

  • 没有找到相关文章

最新更新