Как изменить view-параметр внутри контроллера? - PullRequest
1 голос
/ 18 июля 2011

Это исполняемый код (как показано в разделе «Код за этой страницей»):

Код контроллера

    /**
     * @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!

URL: http://192.168.177.128/Symfony/web/app_dev.php/demo/hello/Raffael


И вот моя проблема:

Когда я раскомментирую возврат в контроллере, тогда "Раффаэль"заменяется на" abc ", как и ожидалось.

Но в соответствии с Quicktour можно определить значения переменных в шаблоне с помощью метода рендеринга.

Чтобы отобразить шаблон в Symfony, используйте метод render из контроллера и передайте ему любые переменные, необходимые в шаблоне:

$ this-> render ('AcmeDemoBundle: Demo: hello.html.веточка, массив ('name' => $ name,));

Что не так?

1 Ответ

1 голос
/ 18 июля 2011

Далее в быстром туре подразумевается, что вы должны вернуть результат рендера:

public function helloAction($name)
{
  return $this->render('AcmeDemoBundle:Demo:hello.html.twig', 
    array('name' => '123'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...