使用
调用表单时print $widget->render()
而不是打印
<li>
<label ...>
<input ...>
</li>
如何打印
<p>
<label ...>
<input ...>
</p>
PS:以我的形式:
public function configure()
{
$this->widgetSchema->setFormFormatterName('list');
}
答案 0 :(得分:2)
您必须按照here所述创建自己的表单架构格式化程序类。例如,要使用段落,您只需重新声明$ rowFormat变量:
#lib/widget/sfWidgetFormSchemaFormatterParagraph.class.php
class sfWidgetFormSchemaFormatterParagraph extends sfWidgetFormSchemaFormatter
{
protected $rowFormat = "<p>
%label% \n %error% <br/> %field%
%help% %hidden_fields%\n</p>\n";
}
如果要对项目的所有形式使用此格式,请将其添加到ProjectConfiguration类(并从表单中删除$ this-&gt; widgetSchema-&gt; setFormFormatterName('list')):
class ProjectConfiguration extends sfProjectConfiguration
{
public function setup()
{
// ...
sfWidgetFormSchema::setDefaultFormFormatterName('paragraph');
}
}
如果您只想将其用于一个表单,请将其添加到表单类中:
public function setup()
{
$this->widgetSchema->addFormFormatter('paragraph', new sfWidgetFormSchemaFormatterParagraph($this->widgetSchema));
$this->widgetSchema->setFormFormatterName('paragraph');
parent::setup();
}
答案 1 :(得分:0)
只需查看sfWidgetFormSchemaFormatterList
和sfWidgetFormSchemaFormatter.class.php
即可。您可以从中创建自己的架构,例如sfWidgetFormSchemaFormatterParagraph
,并更改类的属性以满足您的需求。 (您可能只需要更改$decoratorFormat
和$rowFormat
。例如:
$rowFormat = "<p> %error%%label%\n %field%%help%\n%hidden_fields%</p>"
$decoratorFormat = "%content%"