Zned 2 如何覆盖 FormElementErrors
Zned 2 How to override FormElementErrors
我想覆盖全局这些变量:
\Zend\Form\View\Helper\FormElementErrors.php
表格:
protected $messageCloseString = '</li></ul>';
protected $messageOpenFormat = '<ul%s><li>';
protected $messageSeparatorString = '</li><li>';
收件人:
protected $messageCloseString = '</li></ul>';
protected $messageOpenFormat = '<ul%s><li class="errors">';
protected $messageSeparatorString = '</li><li>';
我该怎么做?
谢谢!
您可以通过在您的视图文件之上调用此助手中的设置器来设置消息格式的任何部分:
<?php
$this->formElementErrors()
->setMessageOpenFormat('<p class="help-block">')
->setMessageSeparatorString('</p><p class="help-block">')
->setMessageCloseString('</p>');
TW Bootstrap.
的此示例格式错误消息
如果您想要全局设置,您可以为此(或任何其他)视图助手创建自己的工厂:
<?php
namespace Application\Factory\Form\View\Helper;
use Zend\Form\View\Helper\FormElementErrors;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
class FormElementErrorsFactory implements FactoryInterface
{
public function createService(ServiceLocatorInterface $serviceLocator)
{
$helper = new FormElementErrors();
$helper->setMessageOpenFormat('<ul%s><li class="errors">');
return $helper;
}
}
并覆盖 ViewHelperManager
的配置:
<?php
// module.config.php
return [
'view_helpers' => [
'factories' => [
'formelementerrors' => \Application\Factory\Form\View\Helper\FormElementErrorsFactory::class,
],
],
];
现在您可以像往常一样使用 formElementErrors
查看助手,但需要您的自定义配置。
谢谢! Awnser 1 en 2 结合起来,给出:
namespace Application\Factory\Form\View\Helper;
use Zend\Form\View\Helper\FormElementErrors;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
class FormElementErrorsFactory implements FactoryInterface
{
public function createService(ServiceLocatorInterface $serviceLocator)
{
$helper = new FormElementErrors();
$helper->setMessageOpenFormat('<ul%s><li class="errors">');
return $helper;
}
}
//module.config
'view_helpers' => array(
'invokables'=> array(
'formelementerror' => '\Admin\Factory\Form\View\Helper\FormElementErrorsFactory'
)
),
//view.phtml
$element = $this->formElementErrors()
->setMessageOpenFormat('<p class="help-block">')
->setMessageSeparatorString('</p><p class="help-block">')
->setMessageCloseString('</p>');
foreach ($form as $element) {
echo '<div class="form-group">
<div class="input-group">';
echo $this->formElement($element);
echo '</div></div>';
echo $this->formElementErrors($element);
}
echo $this->form()->closeTag();?>
我想覆盖全局这些变量:
\Zend\Form\View\Helper\FormElementErrors.php 表格:
protected $messageCloseString = '</li></ul>';
protected $messageOpenFormat = '<ul%s><li>';
protected $messageSeparatorString = '</li><li>';
收件人:
protected $messageCloseString = '</li></ul>';
protected $messageOpenFormat = '<ul%s><li class="errors">';
protected $messageSeparatorString = '</li><li>';
我该怎么做? 谢谢!
您可以通过在您的视图文件之上调用此助手中的设置器来设置消息格式的任何部分:
<?php
$this->formElementErrors()
->setMessageOpenFormat('<p class="help-block">')
->setMessageSeparatorString('</p><p class="help-block">')
->setMessageCloseString('</p>');
TW Bootstrap.
的此示例格式错误消息如果您想要全局设置,您可以为此(或任何其他)视图助手创建自己的工厂:
<?php
namespace Application\Factory\Form\View\Helper;
use Zend\Form\View\Helper\FormElementErrors;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
class FormElementErrorsFactory implements FactoryInterface
{
public function createService(ServiceLocatorInterface $serviceLocator)
{
$helper = new FormElementErrors();
$helper->setMessageOpenFormat('<ul%s><li class="errors">');
return $helper;
}
}
并覆盖 ViewHelperManager
的配置:
<?php
// module.config.php
return [
'view_helpers' => [
'factories' => [
'formelementerrors' => \Application\Factory\Form\View\Helper\FormElementErrorsFactory::class,
],
],
];
现在您可以像往常一样使用 formElementErrors
查看助手,但需要您的自定义配置。
谢谢! Awnser 1 en 2 结合起来,给出:
namespace Application\Factory\Form\View\Helper;
use Zend\Form\View\Helper\FormElementErrors;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
class FormElementErrorsFactory implements FactoryInterface
{
public function createService(ServiceLocatorInterface $serviceLocator)
{
$helper = new FormElementErrors();
$helper->setMessageOpenFormat('<ul%s><li class="errors">');
return $helper;
}
}
//module.config
'view_helpers' => array(
'invokables'=> array(
'formelementerror' => '\Admin\Factory\Form\View\Helper\FormElementErrorsFactory'
)
),
//view.phtml
$element = $this->formElementErrors()
->setMessageOpenFormat('<p class="help-block">')
->setMessageSeparatorString('</p><p class="help-block">')
->setMessageCloseString('</p>');
foreach ($form as $element) {
echo '<div class="form-group">
<div class="input-group">';
echo $this->formElement($element);
echo '</div></div>';
echo $this->formElementErrors($element);
}
echo $this->form()->closeTag();?>