我有以下Symfony控制器:
/**
* Says thanks to the user for signing up.
*
* @Route("/thanks", name="user")
* @Template()
*/
public function thanksAction()
{
return $this->render('VNNPressboxBundle:User:thanks.html.twig');
}
如果我没有包含return
语句,则会收到错误消息,说控制器必须返回响应。有趣的是,我必须手动指定我的动作需要使用哪个模板,考虑到Symfony可以根据我的控制器和动作轻松解决这个问题。再加上Symfony 1.x如何运作。
我必须想象我错过了什么。看起来他们不会在Symfony 1.x中应用约定优于配置概念,然后在Symfony> = 2.0中放弃它。
是否有可能告诉Symfony根据我的控制器和操作找出要使用的模板,如果是,如何?
答案 0 :(得分:6)
你必须归还一些东西。您正在使用@Template注释,因此您不必呈现响应,但仍需返回模板的参数数组(在您的情况下为空):
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
/**
* Says thanks to the user for signing up.
*
* @Route("/thanks", name="user")
* @Template()
*/
public function thanksAction()
{
return array();
}
详细了解文档中的@Template注释:http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/view.html
P.S。不要将symfony 1.x与Symfony 2.x进行比较。这是两个不同的框架。 Symfony 2倾向于明确超越魔法。
答案 1 :(得分:1)
返回一个数组。在你的情况下,它将是一个空数组,但通常你会用你想要传递给模板的变量填充它。