Symfony:是否可以为组件设置模板?

时间:2009-10-23 11:03:27

标签: php symfony1

组件没有setTemplate()!我知道但也许有另一种方法可以做到这一点?

(问题似乎是关于php框架:http://www.symfony-project.org/

4 个答案:

答案 0 :(得分:10)

sfComponents上没有setTemplate方法。你基本上有3个选择:

  1. 将组件命名为与要渲染的组件的部分相同。如果您有多个组件要共享相同的模板,则可能无法实现此目的。
  2. 使用相同的组件名称创建一个部分,并在其中包含部分。也就是说,如果您想要使用executeFoo()方法创建_bar.php模板的组件,只需在include_partial('bar', $vars)内调用_foo.php
  3. 加载PartialHelper并在组件execute方法内部手动渲染部分,并使组件返回sfView :: NONE。

答案 1 :(得分:5)

组件不处理模板,只能使用partials。如果需要从组件类中返回特定的部分,可以执行以下操作:

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

查看symfony book, chapter 7 view layer

答案 2 :(得分:5)

为了解决这个问题,我正在做:

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

答案 3 :(得分:0)

这对我有用:

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

显然模板必须在完全相同的模块中。