这是执行的代码(显示在“此页面后面的代码”部分中):
控制器代码
/**
* @Route("/hello/{name}", name="_demo_hello")
* @Template()
*/
public function helloAction($name)
{
$name = "whatever";
$this->render('AcmeDemoBundle:Demo:hello.html.twig',
array('name' => '123'));
//return array('name' => 'abc');
}
模板代码
{% extends "AcmeDemoBundle::layout.html.twig" %}
{% block title "Hello " ~ name %}
{% block content %}
<h1>xHello {{ name }}!</h1>
{% endblock %}
输出
xHello Raffael!
网址:http://192.168.177.128/Symfony/web/app_dev.php/demo/hello/Raffael
这是我的问题:
当我取消注释控制器内的返回时,“Raffael”会按预期替换为“abc”。
但根据Quicktour,可以通过render-Method确定模板中变量的值。
要在Symfony中渲染模板,请使用a中的render方法 控制器并传递模板中所需的任何变量:
$ this-&gt; render('AcmeDemoBundle:Demo:hello.html.twig',array('name'=&gt; $ name,));
怎么了?
答案 0 :(得分:1)
快速浏览下面隐式显示你必须返回render的输出:
public function helloAction($name)
{
return $this->render('AcmeDemoBundle:Demo:hello.html.twig',
array('name' => '123'));
}