2016-11-23 10 views
0

전자 메일 유효성을 등록 페이지에 복제하려고합니다. 다음 유효성 검사가 전자 메일에 구현됩니다.zend framework 3에 새 사용자를 등록하는 동안 중복 전자 메일 항목을 확인하는 방법

$inputFilter->add(array(
      'name'  => 'email', 
      'required' => true, 
      'filters' => array(
       array('name' => 'StripTags'), 
       array('name' => 'StringTrim'), 
      ), 
      'validators' => array(
       array(
        'name' => 'NotEmpty', 
        'options' => array(
         'messages' => array(
          $isEmpty => 'Email can not be empty.', 
         ), 
        ), 
        'break_chain_on_failure' => true 
       ), 
       array(
        'name' => 'EmailAddress', 
        'options' => array(
         'messages' => array(
          $invalidEmail => 'Enter Valid Email Address.' 
         ) 
        ) 
       ) 
      ) 
      ) 
     ); 
+1

데이터베이스에 전자 메일을 쿼리하려면 사용자 지정 유효성 검사기를 만들어야합니다. 일치하는 것이 있으면 false를 반환하고, 그렇지 않으면 true를 반환해야합니다. Doctrine 엔티티를 사용하고 있다면 이미 존재하는 ['ObjectExists' validator] (https://github.com/doctrine/DoctrineModule/blob/master/docs/validator.md#use-together-with-zend-framework)가 있습니다. -2-forms)를 사용할 수 있습니다. – AlexP

+1

'TableGateWay'로 작업한다면 inputFilter에 테이블을 삽입하고 [callback validator] (https://framework.zend.com/manual/2.4/en/modules/zend.validator.callback)를 생성하십시오. html)에서 유효성 검사를 처리하거나 사용자 정의 유효성 검사기를 만듭니다. – Kwido

답변

1

정확하게 이해하면 전자 메일이 복제되는 것을 원하지 않습니다. 당신은 당신의 $db_adapter 양식에 주입하는 것을 잊지해야

'validators' = array(
    array(
     'name' => 'NotEmpty', 
     'options' => array(
      'messages' => array(
       $isEmpty => 'Email can not be empty.', 
      ), 
     ), 
     'break_chain_on_failure' => true 
    ), 
    array(
     'name' => 'EmailAddress', 
     'options' => array(
      'messages' => array(
       $invalidEmail => 'Enter Valid Email Address.' 
      ) 
     ) 
    ), 
    array(
     'name' => 'Zend\Validator\Db\NoRecordExists', 
     'options' => array(
      'table' => 'your_table_name', 
      'field' => 'email', 
      'adapter' => 'your_db_adapter' 
     ) 
    ) 
) 

:

당신은 Zend\Validator\Db\NoRecordExists 검사기를 추가 할 수 있습니다.