<bdo id='RyS4y'></bdo><ul id='RyS4y'></ul>

        <legend id='RyS4y'><style id='RyS4y'><dir id='RyS4y'><q id='RyS4y'></q></dir></style></legend>

      1. <tfoot id='RyS4y'></tfoot>

      2. <small id='RyS4y'></small><noframes id='RyS4y'>

      3. <i id='RyS4y'><tr id='RyS4y'><dt id='RyS4y'><q id='RyS4y'><span id='RyS4y'><b id='RyS4y'><form id='RyS4y'><ins id='RyS4y'></ins><ul id='RyS4y'></ul><sub id='RyS4y'></sub></form><legend id='RyS4y'></legend><bdo id='RyS4y'><pre id='RyS4y'><center id='RyS4y'></center></pre></bdo></b><th id='RyS4y'></th></span></q></dt></tr></i><div id='RyS4y'><tfoot id='RyS4y'></tfoot><dl id='RyS4y'><fieldset id='RyS4y'></fieldset></dl></div>
      4. Zend_Form:如何检查 2 个字段是否相同

        时间:2023-10-03
        <i id='muaj5'><tr id='muaj5'><dt id='muaj5'><q id='muaj5'><span id='muaj5'><b id='muaj5'><form id='muaj5'><ins id='muaj5'></ins><ul id='muaj5'></ul><sub id='muaj5'></sub></form><legend id='muaj5'></legend><bdo id='muaj5'><pre id='muaj5'><center id='muaj5'></center></pre></bdo></b><th id='muaj5'></th></span></q></dt></tr></i><div id='muaj5'><tfoot id='muaj5'></tfoot><dl id='muaj5'><fieldset id='muaj5'></fieldset></dl></div>

        <small id='muaj5'></small><noframes id='muaj5'>

          1. <legend id='muaj5'><style id='muaj5'><dir id='muaj5'><q id='muaj5'></q></dir></style></legend>
              <tfoot id='muaj5'></tfoot>

                <bdo id='muaj5'></bdo><ul id='muaj5'></ul>

                  <tbody id='muaj5'></tbody>
                1. 本文介绍了Zend_Form:如何检查 2 个字段是否相同的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我创建了一个表单来将用户添加到数据库并使用户可以登录.

                  I have created a form to add a user to a database and make user available for login.

                  现在我有两个密码字段(第二个用于验证第一个).如何向 zend_form 添加用于此类验证的验证器?

                  Now I have two password fields (the second is for validation of the first). How can I add a validator for this kind of validation to zend_form?

                  这是我的两个密码字段的代码:

                  This is my code for the two password fields:

                      $password = new Zend_Form_Element_Password('password', array(
                          'validators'=> array(
                              'Alnum',
                              array('StringLength', array(6,20))
                              ),
                          'filters'   => array('StringTrim'),
                          'label'     => 'Wachtwoord:'
                          ));
                  
                      $password->addFilter(new Ivo_Filters_Sha1Filter());
                  
                      $password2 = new Zend_Form_Element_Password('password', array(
                          'validators'=> array(
                              'Alnum',
                              array('StringLength', array(6,20))
                              ),
                          'filters'   => array('StringTrim'),
                          'required'  => true,
                          'label'     => 'Wachtwoord:'
                          ));
                      $password2->addFilter(new Ivo_Filters_Sha1Filter());
                  

                  推荐答案

                  当我在寻找相同的东西时,我发现这个非常有效的通用 Validator for Identical Fields.我现在找不到它所以我只是发布代码...

                  When I was looking for the same, I found this very well working generic Validator for Identical Fields. I don't find it now so I just post the code...

                  <?php
                  
                  class Zend_Validate_IdenticalField extends Zend_Validate_Abstract {
                    const NOT_MATCH = 'notMatch';
                    const MISSING_FIELD_NAME = 'missingFieldName';
                    const INVALID_FIELD_NAME = 'invalidFieldName';
                  
                    /**
                     * @var array
                    */
                    protected $_messageTemplates = array(
                      self::MISSING_FIELD_NAME  =>
                        'DEVELOPMENT ERROR: Field name to match against was not provided.',
                      self::INVALID_FIELD_NAME  =>
                        'DEVELOPMENT ERROR: The field "%fieldName%" was not provided to match against.',
                      self::NOT_MATCH =>
                        'Does not match %fieldTitle%.'
                    );
                  
                    /**
                     * @var array
                    */
                    protected $_messageVariables = array(
                      'fieldName' => '_fieldName',
                      'fieldTitle' => '_fieldTitle'
                    );
                  
                    /**
                     * Name of the field as it appear in the $context array.
                     *
                     * @var string
                     */
                    protected $_fieldName;
                  
                    /**
                     * Title of the field to display in an error message.
                     *
                     * If evaluates to false then will be set to $this->_fieldName.
                     *
                     * @var string
                    */
                    protected $_fieldTitle;
                  
                    /**
                     * Sets validator options
                     *
                     * @param  string $fieldName
                     * @param  string $fieldTitle
                     * @return void
                    */
                    public function __construct($fieldName, $fieldTitle = null) {
                      $this->setFieldName($fieldName);
                      $this->setFieldTitle($fieldTitle);
                    }
                  
                    /**
                     * Returns the field name.
                     *
                     * @return string
                    */
                    public function getFieldName() {
                      return $this->_fieldName;
                    }
                  
                    /**
                     * Sets the field name.
                     *
                     * @param  string $fieldName
                     * @return Zend_Validate_IdenticalField Provides a fluent interface
                    */
                    public function setFieldName($fieldName) {
                      $this->_fieldName = $fieldName;
                      return $this;
                    }
                  
                    /**
                     * Returns the field title.
                     *
                     * @return integer
                    */
                    public function getFieldTitle() {
                      return $this->_fieldTitle;
                    }
                  
                    /**
                     * Sets the field title.
                     *
                     * @param  string:null $fieldTitle
                     * @return Zend_Validate_IdenticalField Provides a fluent interface
                    */
                    public function setFieldTitle($fieldTitle = null) {
                      $this->_fieldTitle = $fieldTitle ? $fieldTitle : $this->_fieldName;
                      return $this;
                    }
                  
                    /**
                     * Defined by Zend_Validate_Interface
                     *
                     * Returns true if and only if a field name has been set, the field name is available in the
                     * context, and the value of that field name matches the provided value.
                     *
                     * @param  string $value
                     *
                     * @return boolean 
                    */ 
                    public function isValid($value, $context = null) {
                      $this->_setValue($value);
                      $field = $this->getFieldName();
                  
                      if (empty($field)) {
                        $this->_error(self::MISSING_FIELD_NAME);
                        return false;
                      } elseif (!isset($context[$field])) {
                        $this->_error(self::INVALID_FIELD_NAME);
                        return false;
                      } elseif (is_array($context)) {
                        if ($value == $context[$field]) {
                          return true;
                        }
                      } elseif (is_string($context) && ($value == $context)) {
                        return true;
                      }
                      $this->_error(self::NOT_MATCH);
                      return false;
                    }
                  }
                  ?>
                  

                  这篇关于Zend_Form:如何检查 2 个字段是否相同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:如何将 PHP 数组编码为 JSON 数组,而不是对象? 下一篇:Zend 邮件 Gmail SMTP

                  相关文章

                  最新文章

                  <i id='JoLBO'><tr id='JoLBO'><dt id='JoLBO'><q id='JoLBO'><span id='JoLBO'><b id='JoLBO'><form id='JoLBO'><ins id='JoLBO'></ins><ul id='JoLBO'></ul><sub id='JoLBO'></sub></form><legend id='JoLBO'></legend><bdo id='JoLBO'><pre id='JoLBO'><center id='JoLBO'></center></pre></bdo></b><th id='JoLBO'></th></span></q></dt></tr></i><div id='JoLBO'><tfoot id='JoLBO'></tfoot><dl id='JoLBO'><fieldset id='JoLBO'></fieldset></dl></div>

                  1. <small id='JoLBO'></small><noframes id='JoLBO'>

                      <bdo id='JoLBO'></bdo><ul id='JoLBO'></ul>

                    <tfoot id='JoLBO'></tfoot>

                    1. <legend id='JoLBO'><style id='JoLBO'><dir id='JoLBO'><q id='JoLBO'></q></dir></style></legend>