我是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天。提前谢谢。
答案 0 :(得分: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();
}
}