一般的なエラーメッセージを変更したいISBNフィールドが必要です。私はカスタムエラーメッセージを設定しています。Zend Framework 2に必要なカスタム検証エラーメッセージが表示されます
use Zend\Form\Element;
use Zend\Form\Fieldset;
use Zend\Validator;
use Zend\InputFilter\InputFilterProviderInterface;
use Zend\Stdlib\Hydrator\ClassMethods as ClassMethodsHydrator;
class BookItemFieldset extends Fieldset implements InputFilterProviderInterface
{
public $Types;
public function __construct($itemName, $Types)
{
parent::__construct($itemName, $Types);
$this->Types = $Types;
// .. Other fields
$bookISBN = new Element\Number('bookISBN');
$bookISBN->setLabel('Book ISBN ')
->setAttribute('id', 'bookISBN');
// .. more fields
$this->add($bookISBN);
}
public function getInputFilterSpecification()
{
return array(
'bookISBN' => array(
'required' => true,
'validators' => array(
new Validator\NotEmpty(array(
'setMessage'=> 'ISBN is Required'
)
),
new Validator\Isbn(array(
'setMessage'=> 'ISBN is Invalid'
)),
)
),
//... more input filters
);
}
}
しかし、フィールドを空白のままにするとき:フィルタが正しくカスタムエラーメッセージを検証して示したモデルfieldSet
のgetInputFilterSpecification()
機能の一部です。 「ISBN is Invalid」と「ISBN is required」の両方のメッセージが表示されます。
フィールドが空白の場合に必要なエラーメッセージのみを表示する方法はありますか?次のような
何か:
'bookISBN' => array(
'required' => array(
'required' => true,
'setMessage' => 'ISBN is required' // Only this shows if field is empty
),
'validators' => array(
new Validator\Isbn(array(
'setMessage'=> 'ISBN is Invalid' // only this shows if the input is invalid
)),
)
),
感謝。
完全なコードを入力してください。上記のコードはinputFilter関数の一部ではないと私は信じています。 – ksoni
@ KamalSoni、コードを追加しました。 'inputFilter'はエンティティの' FieldSet'の一部です – Jake