Zend framework2 Zned 2如何覆盖FormElementErrors

Zend framework2 Zned 2如何覆盖FormElementErrors,zend-framework2,Zend Framework2,我想覆盖这些变量: \Zend\Form\View\Helper\FormElementErrors.php 表格: protected$messageCloseString='; 受保护的$messageOpenFormat=''; 受保护的$messageSeparatorString=''; 致: protected$messageCloseString='; 受保护的$messageOpenFormat=''; 受保护的$messageSeparatorString=''; 我该怎么

我想覆盖这些变量:

\Zend\Form\View\Helper\FormElementErrors.php 表格:

protected$messageCloseString=';
受保护的$messageOpenFormat='
  • '; 受保护的$messageSeparatorString='
  • ';
  • 致:

    protected$messageCloseString=';
    受保护的$messageOpenFormat='
  • '; 受保护的$messageSeparatorString='
  • ';
  • 我该怎么做?
    塔克斯

    您可以通过调用视图文件顶部此帮助程序中的setters来设置消息格式的任何部分:

    <?php
    $this->formElementErrors()
        ->setMessageOpenFormat('<p class="help-block">')
        ->setMessageSeparatorString('</p><p class="help-block">')
        ->setMessageCloseString('</p>');
    

    您可以通过调用视图文件顶部此帮助程序中的setters来设置消息格式的任何部分:

    <?php
    $this->formElementErrors()
        ->setMessageOpenFormat('<p class="help-block">')
        ->setMessageSeparatorString('</p><p class="help-block">')
        ->setMessageCloseString('</p>');
    

    您可以通过调用视图文件顶部此帮助程序中的setters来设置消息格式的任何部分:

    <?php
    $this->formElementErrors()
        ->setMessageOpenFormat('<p class="help-block">')
        ->setMessageSeparatorString('</p><p class="help-block">')
        ->setMessageCloseString('</p>');
    

    您可以通过调用视图文件顶部此帮助程序中的setters来设置消息格式的任何部分:

    <?php
    $this->formElementErrors()
        ->setMessageOpenFormat('<p class="help-block">')
        ->setMessageSeparatorString('</p><p class="help-block">')
        ->setMessageCloseString('</p>');
    

    如果希望该设置为全局设置,可以为此(或任何其他)视图帮助器创建自己的工厂:


    如果希望该设置为全局设置,可以为此(或任何其他)视图帮助器创建自己的工厂:


    如果希望该设置为全局设置,可以为此(或任何其他)视图帮助器创建自己的工厂:


    如果希望该设置为全局设置,可以为此(或任何其他)视图帮助器创建自己的工厂:


    Thnx!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();?>
    
    名称空间应用程序\Factory\Form\View\Helper;
    使用Zend\Form\View\Helper\FormElementErrors;
    使用Zend\ServiceManager\FactoryInterface;
    使用Zend\ServiceManager\ServiceLocator接口;
    类FormElementErrorsFactory实现FactoryInterface
    {
    公共函数createService(serviceLocator接口$serviceLocator)
    {
    $helper=new FormElementErrors();
    $helper->setMessageOpenFormat('
  • '); 返回$helper; } } //module.config “查看\u帮助程序”=>数组( 'invokables'=>数组( 'formelementerror'=>'\Admin\Factory\Form\View\Helper\FormElementErrorsFactory' ) ), //view.phtml $element=$this->formElementErrors() ->setMessageOpenFormat(“

    ”) ->setMessageSeparatorString(“

    ”) ->setMessageCloseString(“

    ”); foreach($formas$element){ 回声' '; echo$this->formElement($element); 回声'; echo$this->formElementErrors($element); } echo$this->form()->closeTag();?>
  • Thnx!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();?>
    
    名称空间应用程序\Factory\Form\View\Helper;
    使用Zend\Form\View\Helper\FormElementErrors;
    使用Zend\ServiceManager\FactoryInterface;
    使用Zend\ServiceManager\ServiceLocator接口;
    类FormElementErrorsFactory实现FactoryInterface
    {
    公共函数createService(serviceLocator接口$serviceLocator)
    {
    $helper=new FormElementErrors();
    $helper->setMessageOpenFormat('
  • '); 返回$helper; } } //module.config “查看\u帮助程序”=>数组( 'invokables'=>数组( 'formelementerror'=>'\Admin\Factory\Form\View\Helper\FormElementErrorsFactory' ) ), //view.phtml $element=$this->formElementErrors() ->setMessageOpenFormat(“

    ”) ->setMessageSeparatorString(“

    ”) ->setMessageCloseString(“

    ”); foreach($formas$element){ 回声' '; echo$this->formElement($element); 回声'; echo$this->formElementErrors($element); } echo$this->form()->closeTag();?>
  • Thnx!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();?>
    
    名称空间应用程序\Factory\Form\View\Helper;
    使用Zend\Form\View\Helper\FormElementErrors;
    使用Zend\ServiceManager\FactoryInterface;
    使用Zend\ServiceManager\ServiceLocator接口;
    类FormElementErrorsFactory实现FactoryInterface
    {
    公共函数createService(serviceLocator接口$serviceLocator)
    {
    $helper=new FormElementErrors();
    $helper->setMessageOpenFormat('
  • '); 返回$helper; } } //module.config “查看\u帮助程序”=>数组( 'invokables'=>数组( 'formelementerror'=>'\Admin\Factory\Form\View\Helper\FormElementErrorsFactory' ) ), //view.phtml $element=$this->formElementErrors() ->setMessageOpenFormat(“

    ”) ->setMessageSeparatorString(“

    ”) ->setMessageCloseString(“

    ”); foreach($formas$element){ 回声' '; echo$this->formElement($element); 回声'; echo$this->formElementErrors($element); } echo$this->form()->closeTag();?>
  • Thnx!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();?>
    
    名称空间应用程序\Factory\Form\View\Helper;
    使用Zend\Form\View\Helper\FormElementErrors;
    使用Zend\ServiceManager\FactoryInterface;
    使用Zend\ServiceManager\ServiceLocator接口;
    类FormElementErrorsFactory实现FactoryInterface
    {
    公共函数createService(serviceLocator接口$serviceLocator)
    {
    $helper=new FormElementErrors();
    $helper->setMessageOpenFormat('
  • '); 返回$helper; } } //module.config “查看\u帮助程序”=>数组( 'invokables'=>数组( 'formelementerror'=>'\Admin\Factory\Form\View\Helper\FormElementErrorsFactory' ) ), //view.phtml $element=$this->formElementErrors() ->setMessageOpenFormat(“

    ”) ->setMessageSeparatorString(“

    ”) ->setMessageCloseString(“

    ”); foreach($formas$element){ 回声' '; echo$this->formElement($element); 回声'; echo$this->formElementErrors($element); } echo$this->form()->closeTag();?>
  • 谢谢,但我希望它们是全局的,这样我就可以为所有表单设置一次。这是可能的吗?当然,只需通过您自己的类扩展formElementErrors helper,在这个扩展类中实现您自己的格式表单错误消息,然后在模块配置中注册它并用作源代码。谢谢,但我希望它们是全局的,这样我就可以为所有表单设置一次。这是可能的吗?当然,只需通过您自己的类扩展formElementErrors helper,并在这个扩展类中实现您自己的format form error messa