Zendフォームの検証-NotEmpty + StringLength

ポロスマン

フォーム要素で、エラーメッセージを編集しました。

$this->addElement('text', 'type', array(
    'label' => 'Type: ',
    'class' => 'form-control',
    'placeholder' => 'type',
    'required' => true,
    'validators' => array(
        array('validator' => 'StringLength', 'options' => array('min' => 3, 'max' => 10, 'messages' => array('stringLengthTooShort' => 'The type is too short.', 'stringLengthTooLong' => 'The type is too long.')))
        ,array('validator' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Type is required.')))
    ),
));

問題は、空のフォームを送信すると、両方のメッセージが表示されることです(タイプが短すぎる+タイプが必要です)。ただし、この場合、NotEmptyエラーメッセージのみを表示する必要があり、Stringlength(最小長3)エラーメッセージは表示する必要はありません。したがって、NotEmpty検証後にminlengthを検証する必要があります。ありがとう

編集:requiredとvalidatorsの呼び出しの異なる位置と、それらのチェーンの異なる設定true / false(次のコード)を変更しようとしましたが、要素が空の場合でも両方のエラーメッセージが表示されます

$this->addElement('text', 'type', array(
    'label' => 'Type: ',
    'class' => 'form-control',
    'placeholder' => 'type',

    'validators' => array(
        array('validator' => 'NotEmpty',true, 'options' => array('messages' => array('isEmpty' => 'Type is requiredDDDD.'))),
        array('validator' => 'StringLength',false, 'options' => array('min' => 3, 'max' => 10, 'messages' => array('stringLengthTooShort' => 'The type is too short.', 'stringLengthTooLong' => 'The type is too long.')))

    ),
    'required' => true,

));
doydoy44

あなたはこのようなことを試すことができます:

  1. 2番目のバリデーターにコメントする

    $this->addElement('text', 'type', array(
        'label' => 'Type: ',
        'class' => 'form-control',
        'placeholder' => 'type',
        'required' => true,
        'validators' => array(
            //array('validator' => 'StringLength', 'options' => array('min' => 3, 'max' => 10, 'messages' => array('stringLengthTooShort' => 'The type is too short.', 'stringLengthTooLong' => 'The type is too long.'))),
            array('validator' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Type is required.')))
        ),
    ));
    
  2. isValid()関数にバリデーターを追加します。

    public function isValid($data) {
    
        $etat_valid = parent::isValid($data);
    
        $error = $this->getElement('type')->getMessages();
        if (empty($error)){
            $validator = new Zend_Validate_StringLength(array( 
                 'min' => 3, 
                 'max' => 10, 
                 'messages' => array('stringLengthTooShort' => 'The type is too short.', 
                                     'stringLengthTooLong' => 'The type is too long.')
                                                      )
                                               );
    
            $etat_valid_type = $validator->isValid($data['type']);
            if (!$etat_valid_type){
                   $this->getElement('type')->addErrors($validator->getMessages());
            }
        }  
    
        return $etat_valid && $etat_valid_type;
     }
    

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

検証ルールnotEmptyおよびrequirePresence

分類Dev

カスタムStringLength検証属性のクライアント側検証

分類Dev

ObjectiveCのstring.lengthと[stringlength]の違い

分類Dev

MVC5StringLength検証がintで失敗する

分類Dev

CakePHP 3-検証NotEmptyの前にTrim()を使用する方法は?

分類Dev

HibernateバリデーターNotEmptyトリムの問題

分類Dev

PHP Zend(ZF1)は、Zend_Filter_InputのStringLengthメッセージを変更できません

分類Dev

StringLengthとMaxLengthの属性ASP.NETMVC、Entity FrameworkEFコードファースト

分類Dev

oneToManyの@NotEmptyアノテーションバリデーター

分類Dev

CakePHP3-何らかの理由でnotEmptyを検証しようとしているCake

分類Dev

Javax.packageまたは代替のHibernate @NotEmptyアノテーションと同等

分類Dev

Hibernate Validator 4.1以降では、@ NotNull、@ NotEmpty、@ NotBlankの違いは何ですか?

分類Dev

フォームの検証

分類Dev

setActionを使用すると、Zendフォームの検証が失敗します

分類Dev

アノテーション@NotEmptyは、文字列がnullかどうかをチェックしません

分類Dev

@NotEmptyはカスタマイズされた例外メッセージを表示しません

分類Dev

検出フォームの検証

分類Dev

リバースエンジニアリング時にEFPower ToolsでStringLengthを追加するにはどうすればよいですか?

分類Dev

DataAnnotations에서 StringLength를 얻는 방법

分類Dev

DataAnnotationsからStringLengthを取得する方法

分類Dev

Zend2フォームの検証-配列されたフィールド名

分類Dev

SafariのAMPフォームの検証

分類Dev

laravel でのフォームの検証

分類Dev

Zend2フォームの検証パスワードとパスワードの再入力

分類Dev

Zendフレームワーク1でのURL検証

分類Dev

複数のフォーム検証でのフォーム検証エラー

分類Dev

Thymeleafフォームの検証

分類Dev

jQueryの動的フォーム検証

分類Dev

Javascript検証後のフォーム送信

Related 関連記事

  1. 1

    検証ルールnotEmptyおよびrequirePresence

  2. 2

    カスタムStringLength検証属性のクライアント側検証

  3. 3

    ObjectiveCのstring.lengthと[stringlength]の違い

  4. 4

    MVC5StringLength検証がintで失敗する

  5. 5

    CakePHP 3-検証NotEmptyの前にTrim()を使用する方法は?

  6. 6

    HibernateバリデーターNotEmptyトリムの問題

  7. 7

    PHP Zend(ZF1)は、Zend_Filter_InputのStringLengthメッセージを変更できません

  8. 8

    StringLengthとMaxLengthの属性ASP.NETMVC、Entity FrameworkEFコードファースト

  9. 9

    oneToManyの@NotEmptyアノテーションバリデーター

  10. 10

    CakePHP3-何らかの理由でnotEmptyを検証しようとしているCake

  11. 11

    Javax.packageまたは代替のHibernate @NotEmptyアノテーションと同等

  12. 12

    Hibernate Validator 4.1以降では、@ NotNull、@ NotEmpty、@ NotBlankの違いは何ですか?

  13. 13

    フォームの検証

  14. 14

    setActionを使用すると、Zendフォームの検証が失敗します

  15. 15

    アノテーション@NotEmptyは、文字列がnullかどうかをチェックしません

  16. 16

    @NotEmptyはカスタマイズされた例外メッセージを表示しません

  17. 17

    検出フォームの検証

  18. 18

    リバースエンジニアリング時にEFPower ToolsでStringLengthを追加するにはどうすればよいですか?

  19. 19

    DataAnnotations에서 StringLength를 얻는 방법

  20. 20

    DataAnnotationsからStringLengthを取得する方法

  21. 21

    Zend2フォームの検証-配列されたフィールド名

  22. 22

    SafariのAMPフォームの検証

  23. 23

    laravel でのフォームの検証

  24. 24

    Zend2フォームの検証パスワードとパスワードの再入力

  25. 25

    Zendフレームワーク1でのURL検証

  26. 26

    複数のフォーム検証でのフォーム検証エラー

  27. 27

    Thymeleafフォームの検証

  28. 28

    jQueryの動的フォーム検証

  29. 29

    Javascript検証後のフォーム送信

ホットタグ

アーカイブ