Symfony: можно ли установить шаблон для компонентов? - PullRequest
9 голосов
/ 23 октября 2009

Нет setTemplate () для компонентов! Я знаю, но, может быть, есть другой способ сделать это?

(Похоже, вопрос касается фреймворка php: http://www.symfony -project.org / )

Ответы [ 4 ]

10 голосов
/ 25 октября 2009

Нет метода setTemplate для sfComponents. По сути, у вас есть 3 варианта:

  1. Назовите ваш компонент так же, как тот, который вы хотите визуализировать. Это может быть невозможно, если у вас есть несколько компонентов, которые вы хотите использовать в одном шаблоне.
  2. Создайте частичное с таким же именем вашего компонента и включите туда частичное. То есть, если у вас был компонент с executeFoo() методом, который вы хотели визуализировать _bar.php, просто вызовите include_partial('bar', $vars) внутри _foo.php.
  3. Загрузите PartialHelper и визуализируйте частичное вручную внутри метода execute компонентов, и компонент вернет sfView :: NONE.
5 голосов
/ 24 июня 2010

Чтобы обойти это, я делаю:

echo get_component('module', 'action', $this->getVarHolder()->getAll());
return sfView::NONE;
5 голосов
/ 24 октября 2009

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

return get_partial('module/action', array('paramName' => $paramValue));

Загляните в книгу symfony, глава 7, слой представления

0 голосов
/ 16 декабря 2014

Это сработало для меня:

$this->setVar('template', 'templateName');

Очевидно, что шаблон должен быть в том же модуле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...