我计划更新在 Symfony 3.0 上运行的应用程序。
我曾经使用@Template(),但是更新时,我必须在()中指定twig文件的根目录。
但是,您需要更改_format 中index.csv.twig 和index.html.twig 的读取方式。
有什么好的办法吗?
之前 (Symfony 3.0)
/**
* @Route("/{_format}", defaults={"_format"="html"}, requirements={"_format"="html|csv"})
* @Method("GET")
*
* @Template()
*/
public function indexAction(Request $request)
{
if ($request->getRequestFormat() == 'html') {
} elseif ($request->getRequestFormat() == 'csv') {
$request->attributes->set('filename', 'post_article.csv');
}
之后 (Symfony 3.4
/**
* @Route("/{_format}", defaults={"_format"="html"}, requirements={"_format"="html|csv"})
* @Method("GET")
*
* @Template("AppBudle:Hq/Post:index.html.twig")
*/
public function indexAction(Request $request)
{
if ($request->getRequestFormat() == 'html') {
} elseif ($request->getRequestFormat() == 'csv') {
$request->attributes->set('filename', 'post_article.csv');
}
<button type="submit" class="btn">
<i class="icon-download"></i>
<a class="a_btn" href="{{ path('app_hq_post_index', {'_format': 'csv'}) }}"> output</a>
</button>
可以直接使用$this->render代替@template
/**
* @Route("/{_format}", defaults={"_format"="html"}, requirements={"_format"="html|csv"})
* @Method("GET")
*
*/
public function indexAction(Request $request, $_format)
{
if ($request->getRequestFormat() == 'html') {
} elseif ($request->getRequestFormat() == 'csv') {
$request->attributes->set('filename', 'post_article.csv');
}
return $this->render(‘AppBudle:Hq/Post:index.´ . $_format . ´.twig’);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)