簡體   English   中英

如何在ZF3中自定義表單驗證消息

[英]How to customize form validation messages in ZF3

如果我沒有在輸入過濾器中指定驗證器,我應該在ZF3的哪里定制表單驗證消息?

如果我使用ZF3文檔中提供的代碼,如下所示,則'required' => true,參數將在表單驗證時使formElementErrors()幫助程序在表單驗證時呈現消息"Value is required and can't be empty"輸入留空。 我想更改該消息,但不知道在哪里更改。 我知道,如果我在輸入過濾器中定義了驗證器,則可以在那里為我定義的驗證器自定義消息。 但是'validators' => [],如ZF3示例所示,如果我離開'validators' => [],在哪里定義消息?

return [
    'input_filter_specs' => [
        'foobar' => [
            [
                'name' => 'name',
                'required' => true,
                'filters' => [
                    [
                        'name' => 'Zend\Filter\StringTrim',
                        'options' => [],
                    ],
                ],
                'validators' => [],
                'description' => 'Hello to name',
                'allow_empty' => false,
                'continue_if_empty' => false,
            ],
        ],
    ],
];

Zend\\InputFilter\\Input類中的prepareRequiredValidationFailureMessage方法中,如果元素是必需的(如果尚未存在),則NotEmpty驗證器會自動附加到該元素的驗證器鏈。 這意味着,如果在輸入過濾器配置中附加了NotEmpty驗證程序,則可以自己定義錯誤消息。 標准消息在NotEmpty驗證器中定義為NotEmpty::IS_EMPTY常量。

return [
    'input_filter_specs' => [
        'foobar' => [
            [
                'name' => 'name',
                'required' => true,
                'filters' => [
                    [
                        'name' => StringTrim::class,
                        'options' => [],
                    ],
                ],
                'validators' => [
                    [
                        'name' => NotEmpty::class,
                        'options' => [
                            'messages' => [
                                NotEmpty::IS_EMPTY => 'Your message here',
                            ],
                        ],
                    ],
                ],
                'allow_empty' => false,
                'continue_if_empty' => false,
            ],
        ],
    ],

];

NotEmpty驗證程序的選項中,可以定義要在失敗時顯示的消息。

另一種方法可以是NotEmpty驗證程序的翻譯器。 如果您為應用程序使用翻譯,則可以為錯誤消息設置單獨的短語。 在這種情況下,您不必在輸入過濾器規范中提及NotEmpty驗證器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM