Как я могу легко передать все переменные из шаблона в партиал в Symfony с экранированием выходных данных? - PullRequest
0 голосов
/ 07 июня 2010

Это простой способ передать все переменные, к которым у файла шаблона есть доступ, к частичному, когда у меня экранированный вывод?

Я склонен создавать файл шаблона, а затем в какой-то момент реорганизовывать вещи в частичное, и может показаться, что будет простой способ передать все те же переменные из шаблона в частичное и покончить с этим.

У меня выходной выход, и я не могу просто передать $ sf_data .

Похоже, что вызов частичного из другого частичного очень прост ... просто передайте переменную $ vars.

Edit: Это касается Symfony 1.2 +

1 Ответ

2 голосов
/ 07 июня 2010

Какую версию Symfony используете?

СОВЕТ Новое в symfony 1.1: вместо в результате чего шаблон, действие может вернуть частичное или компонент. renderPartial () и renderComponent () методы действия класса продвигают возможность повторного использования кода. Кроме того, они воспользоваться кешированием способности частичного (см. главу 12). Переменные, определенные в действие будет автоматически передано частичное / компонент, если вы определить ассоциативный массив переменные в качестве второго параметра способ.

так что если вы просто не передадите второй аргумент include_partial (), я думаю, вы закончили ...

РЕДАКТИРОВАТЬ: совершенно неправильно. Давайте посмотрим, что делается в renderPartial (): есть вызов getPartial (), который делает это:

$vars = null !== $vars ? $vars : $this->varHolder->getAll();

Итак, теперь вы можете создать переменную со всеми переменными в вашем действии:

  public function executeStackOverflow()
  {
    $this->testVar = 42;
    $this->allVars = $this->varHolder->getAll();
  }

Теперь вы можете вызвать ваши партиалы и дать им $ allVars в качестве второго аргумента. Доступ предоставлен ко всем переменным.

...