如何使用@Template() 引用多个树枝

How to reference multiple twigs with @Template()

我计划在 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’);
}