2012-08-27 9 views
6

So bin ich mit Zend und ich habe eine Zend Form mit einem Zend_Form_Element_File und drei Validatoren: 1. setRequired 2. Erweiterung 3. GrößeSo legen Sie benutzerdefinierte Fehlermeldung zend Formularelement Datei?

$this->browse = new Zend_Form_Element_File('Browse'); 
$this->browse->setRequired(false)->removeDecorator('errors')->removeDecorator('label') 
->addValidator('Extension', true, 'pdf')->addValidator('Size', false, 2000000); 

ich benutzerdefinierte Fehlermeldungen für diese Validatoren festlegen möchten, aber weiß nicht wie.

Der Grund, warum ich eine benutzerdefinierte Fehlermeldung einrichten möchte, ist, weil ich einen benutzerdefinierten Dekorator habe, mit dem ich alle Fehler ergreife, wenn das Formular mit isValid() ungültig ist und sie am Anfang des Formulars anzeigen. Die Methode, für die ich Fehler in der Form ergreife, ist getErrors().

Ich habe auch versucht: http://www.mail-archive.com/[email protected]/msg25779.html by doing:

$validator = new Zend_Validate_File_Upload(); 
$validator->setMessages(array('fileUploadErrorNoFile' => 'Upload an image!'')); 

und

$this->browse->addValidator($validator); 

Jede Hilfe zu tun?

Antwort

18

Dies ist, wie ich benutzerdefinierte Validator-Nachricht festlegen.

$file = new Zend_Form_Element_File('file'); 
$file->setLabel('File Label') 
    ->setMaxFileSize('512000') 
    ->addValidator('Count', true, 1) 
    ->addValidator('Size', true, 512000) 
    ->addValidator('Extension', true, 'jpg,jpeg,png,gif'); 

$file->getValidator('Count')->setMessage('You can upload only one file'); 
$file->getValidator('Size')->setMessage('Your file size cannot upload file size limit of 512 kb'); 
$file->getValidator('Extension')->setMessage('Invalid file extension, only valid image with file format jpg, jpeg, png and gif are allowed.'); 

Hier sind einige der Links, die sich als nützlich erweisen können, um benutzerdefinierte Validatormeldungen zu verstehen.

http://framework.zend.com/manual/en/zend.validate.messages.html

Zend Framework Custom Validation Class Error Message

Can't set custom validator messages in Zend_Form

+0

Vielen Dank für dieses Add! Auf der Suche nach einem Weg, um dies zu tun, aber es war nicht allzu klar in den Dokumenten. –

2
$this->browse = new Zend_Form_Element_File('Browse'); 
$this->browse->setRequired(true) 
      ->removeDecorator('errors') 
      ->removeDecorator('label') 
      ->addValidator('Extension', true, 'pdf') 
      ->addValidator('Size', false, 2000000) 
      //->setMessage('You custom message') 
      ->addValidator('File_Upload', true, array('messages'=>'You custom message')); 
0

Um benutzerdefinierte Nachricht auf Zend_Form_Element_File finden Sie folgenden Code,

$browse = new Zend_Form_Element_File('Browse'); 
    $browse->addValidator('Extension', false, array('pdf', 
       'messages'=>array('fileExtensionFalse'=>'file extension is not supported')) 
      ->addValidator('Size', false, array(2000000, 
       'messages'=>array('filesizefalse'=>'maximum 2000000 supported')); 
Verwandte Themen