Symfony: действительно ли это возможно к setTemplate для компонентов?

Если формула работает, и произойдите из своих бизнес-правил нет никакой реальной потребности упростить ее. Компилятор, вероятно, знает лучше, чем мы как к оптимизации формулы.

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

Остерегаются применения любого предлагаемого решения перед поблочным тестированием их.

9
задан Nickolay 23 October 2009 в 11:41
поделиться

3 ответа

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

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

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

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

Взгляните на книгу Symfony, уровень представления главы 7

5
ответ дан 4 December 2019 в 10:32
поделиться

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

echo get_component('module', 'action', $this->getVarHolder()->getAll());
return sfView::NONE;
5
ответ дан 4 December 2019 в 10:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: