我正在尝试使用该_toString()
方法在表单中呈现模板。我面临的问题是表单不是从控制器继承的,我不能这样做 $str.= $this->renderPartial('template',array('form' => $this)); 如何实现?
我正在使用 symfony 1.4 和 PHP 5.3
我正在尝试使用该_toString()
方法在表单中呈现模板。我面临的问题是表单不是从控制器继承的,我不能这样做 $str.= $this->renderPartial('template',array('form' => $this)); 如何实现?
我正在使用 symfony 1.4 和 PHP 5.3
您可以为它创建一个小部件:
class fdWidgetFromPartial extends sfWidgetForm
{
public function __construct($options = array(), $attributes = array())
{
parent::__construct($options, $attributes);
sfProjectConfiguration::getActive()->loadHelpers('Partial');
}
protected function configure($options = array(), $attributes = array())
{
$this->addRequiredOption('template');
$this->addOption('variables', array());
}
public function render($name, $value = null, $attributes = array(), $errors = array())
{
return get_partial($this->getOption('template'), array_merge(array(
'name' => $name,
'value' => $value,
'attributes' => $attributes,
'errors' => $errors,
), $this->getOption('variables')));
}
}
并像这样使用它:
$this->setWidget('field', new WidgetFromPartial(array(
'template' => 'modeule/template',
'variables' => array(
'some_data' => $this->getObject()->getData(),
)
)));
您不应该在部分中使用任何输入字段。
可以使用此渲染部分来自 Symfony 1.4和 1.4 文档http://www.symfony-project.org/api/1_4/PartialHelper中的任务
我做了
sfContext::getInstance()->getConfiguration()->loadHelpers('Partial');
在 __toString()
和
get_partial('template',array('form' => $this));
代替
$this->renderPartial('template',array('form' => $this));