2013-12-03 8 views
0

Как я могу проверить входные данные в моих полях электронной почты и пароля, если поле электронной почты должно содержать только действительный адрес электронной почты и пароль между 6 и 12 символами длины? Мой код формы:Форма проверки в ZF2

namespace Notes\Form; 

use Zend\Form\Form; 
use Zend\InputFilter\InputProviderInterface; 
use Zend\InputFilter\InputFilter; 
use Zend\Validator\ValidatorInterface; 
use Zend\InputFilter\Factory as InputFactory; 



class AuthorizationForm extends Form 
{ 
    public function __construct($name = null) 
    { 
    parent::__construct('auth'); 
    $this->setAttribute('method', 'post'); 

    $this->add(array(
     'name' => 'email', 
     'attributes' => array(
      'type' => 'text', 
      'style' => 'width: 250px;', 
     ), 
    )); 

    $this->add(array(
     'name' => 'password', 
     'attributes' => array(
      'type' => 'password', 
      'style' => 'width: 250px;', 
     ), 
    )); 

    $this->add(array(
     'name' => 'submit', 
     'attributes' => array(
      'type' => 'submit', 
      'value' => 'Login', 
      'id' => 'submitbutton', 
      'class' => 'fbutton green', 
      ), 
    )); 

    $this->add(array(
     'type' => 'Zend\Form\Element\Checkbox', 
     'name' => 'save_login', 
     'options' => array(
      'label' => 'Remember me ', 
      'checked_value' => '1', 
     ), 
    )); 
    } 
} 

Спасибо за ответы!

ответ

1

Добавьте эти валидаторы в файл модели:

// For email validation 
    'validators' => array(
     array('regex', true, array(
      'pattern' => '/[A-Z0-9._%-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}/i', 
      'messages' => 'Your error message here...')) 
    ), 

    // For character length validation 
    'validators' => array(
      array(
       'name' => 'Between', 
       'options' => array(
        'min' => 6, 
        'max' => 12, 
      ), 
     ), 
     ), 

Я надеюсь, что это помогает.

+0

Спасибо, это работает! – Walllter

1

Существует встроенный валидатор для проверки электронной почты, который будет идти, как это,

'validators' => array(      
      array('EmailAddress',true)     
      ) 

также для получения более подробной информации посетите следующий, http://zend-framework-community.634137.n4.nabble.com/ZF2-How-to-validate-a-password-and-email-in-zend-framework-2-td4657533.html

Смежные вопросы