0

我对 symfony2 很陌生,过去几天一直在努力解决问题。我的控制器是

<?php

namespace Myname\AdminBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;

class DefaultController extends Controller
{
    /**
     * @Route("/admin/{type}/{nav}", defaults={"nav"="nil"})
     * @Template("MyBundle::index.html.twig")
     */
    public function indexAction($type, $nav)
    {
        return array('type' => $type, 'nav' => $nav);

    }

    /**
     * @Route("/myLink/accounts", name="page_accounts")
     * @Template("MyBundle::accounts.html.twig")
     */
    public function accountsAction()
    {
        return $this->render('MyBundle::accounts.html.twig');
    }
}

但是我面临的问题是,我尝试使用哪个链接,它使用的是第一个定义的模板,而第二个模板永远不会呈现。但是如果我从代码中删除第一个模板,第二个模板就可以正常工作了。任何评论都会非常棒,因为我在过去 4 天都被困住了。提前致谢。

4

1 回答 1

0

我不确定我是否完全理解您的问题。但是,我认为您的控制器以及您如何使用 @Template 注释存在一些问题。

首先,如果您遵循默认约定,那么您甚至不需要指定要使用的模板。此外,在使用 @Template 注释时,您应该返回一个数组。

如果这些都没有帮助或相关,您能否再澄清一些?

class DefaultController extends Controller
{
    /**
     * @Route("/admin/{type}/{nav}", defaults={"nav"="nil"})
     * @Template
     */
    public function indexAction($type, $nav)
    {
        return array('type' => $type, 'nav' => $nav);

    }

    /**
     * @Route("/myLink/accounts", name="page_accounts")
     * @Template
     */
    public function accountsAction()
    {
        return array();
    }
}
于 2013-07-22T22:08:59.190 回答