Symfony: Можно ли установить TEMplate для компонентов?

Для компонентов нет setTemplate ()! Я знаю, но, может быть, есть еще один способ сделать это?

(Вопрос, похоже, касается структуры php: http://www.symfony-project.org/ )

На sfComponents нет метода setTemplate. У вас есть 3 варианта:

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

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

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

Взгляните на книгу symfony, главу 7

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

 echo get_component('module', 'action', $this->getVarHolder()->getAll()); return sfView::NONE; 

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

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

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