0

我正在尝试学习 symfony .. 有人可以告诉我是否有类似的方法renderErrorText()吗?因为这个方法renderError()输出带有 ul/li 标签的 html。我只想要错误的文本而不是它的 html。

4

1 回答 1

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');
    }
}

你会找到 :

于 2013-08-30T18:44:53.867 回答