我正在尝试学习symfony ..有人可以告诉我是否有像renderErrorText()
这样的方法吗?因为此方法renderError()
输出带有ul / li标记的html。我只想要错误的文本,而不是它的HTML。
答案 0 :(得分:0)
您需要定义自己的装饰器。 renderError
使用预先格式化的格式来显示html渲染器。
创建类似lib/form/sfWidgetFormSchemaFormatterMyFormatter.class.php
的文件:
<?php
class sfWidgetFormSchemaFormatterMyFormatter extends sfWidgetFormSchemaFormatter
{
protected
$rowFormat = '',
$helpFormat = '%help%',
$errorRowFormat = '%errors%',
$errorListFormatInARow = " <ul class=\"error_list\">\n%errors% </ul>\n",
$errorRowFormatInARow = " <li>%error%</li>\n",
$namedErrorRowFormatInARow = " <li>%name%: %error%</li>\n",
$decoratorFormat = '',
$widgetSchema = null,
$translationCatalogue = null;
在这个类中,您可以定义如何格式化和呈现错误。
然后,您需要将此类定义为表单的默认格式化程序。如果这是关于您的前端环境,请apps/backend/config/frontendConfiguration.class.php
:
class frontendConfiguration extends sfApplicationConfiguration
{
public function configure()
{
sfWidgetFormSchema::setDefaultFormFormatterName('MyFormatter');
}
}
或者,如果您希望它在您的项目中是全局的,请config/ProjectConfiguration.class.php
:
class ProjectConfiguration extends sfProjectConfiguration
{
public function setup()
{
sfWidgetFormSchema::setDefaultFormFormatterName('MyFormatter');
}
}
你会发现: