symfony在表单中呈现模板/部分

时间:2013-05-07 07:49:23

标签: symfony-1.4 php-5.3

我正在尝试使用_toString()方法在表单中呈现模板。 我面临的问题是表单不会从控制器继承而我无法做到      $ str。= $ this-> renderPartial('template',array('form'=> $ this)); 如何实现这一目标?

我正在使用symfony 1.4和PHP 5.3

2 个答案:

答案 0 :(得分:1)

您可以为它创建一个小部件:

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(),
  )
)));

你应该使用部分中的任何输入字段。

答案 1 :(得分:0)

确定使用此Render a partial from a task in Symfony 1.4和1.4 doc 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));