0

如何在 ZF2 上设置默认表单错误装饰器?我想在错误html上设置自定义类怎么办?

4

2 回答 2

1

ZF2 中不再有装饰器。你正在看的东西叫做ViewHelpers. 这实际上在官方文档中进行了解释(甚至不止一次)。

这将是您正在查看的代码:

/**
 * Example #1: Default options
 */
echo $this->formElementErrors($element);
// <ul><li>Value is required and can&#039;t be empty</li></ul>

/**
 * Example #2: Add attributes to open format
 */
echo $this->formElementErrors($element, array('class' => 'help-inline'));
// <ul class="help-inline"><li>Value is required and can&#039;t be empty</li></ul>

/**
 * Example #3: Custom format
 */
echo $this->formElementErrors()
          ->setMessageOpenFormat('<div class="help-inline">')
          ->setMessageSeparatorString('</div><div class="help-inline">')
          ->setMessageCloseString('</div>')
          ->render($element);

这显然是针对每个元素的。

于 2013-04-26T21:20:27.403 回答
1

正如 Sam 已经说过的,这将是编写新 ViewHelper 的正确方法。但你也可以调用setMessageOpenFormat()Module.php 文件:

$serviceManager = $e->getApplication()->getServiceManager();
$viewHelperManager = $serviceManager->get('viewhelpermanager');
$formElementErrorsViewHelper = $viewHelperManager->get('FormElementErrors');
$formElementErrorsViewHelper->setMessageOpenFormat('<div class="error"><ul%s><li>');
$formElementErrorsViewHelper->setMessageCloseString('</li></ul></div>');
于 2013-09-17T13:13:09.707 回答