2012-08-27 13 views
6

Così sto usando Zend e ho un modulo di Zend con uno Zend_Form_Element_File e tre validatori: 1. setRequired 2. Estensione 3. FormatoCome impostare un file di elemento forma del messaggio di errore personalizzato?

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

voglio impostare messaggi di errore personalizzati per questi validatori ma non so come.

Il motivo per cui desidero impostare un messaggio di errore personalizzato è perché ho un decoratore personalizzato con il quale prendo tutti gli errori quando il modulo non è valido con isValid() e li visualizza nella parte superiore del modulo. Il metodo per cui sto acquisendo errori nel modulo è getErrors().

Ho anche provato: http://www.mail-archive.com/[email protected]/msg25779.html facendo:

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

e facendo

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

Qualsiasi aiuto?

risposta

18

questo è il modo in cui utilizzo per impostare un messaggio di convalida personalizzato.

$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.'); 

Ecco alcuni dei collegamenti che potrebbero rivelarsi utili per comprendere il messaggio di convalida personalizzato.

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

Grazie per questo! Sono stato a caccia di un modo per farlo, ma non era eccessivamente chiaro nei documenti. –

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

Per aggiungere un messaggio personalizzato sul zend_form_element_file, vedere codice seguente,

$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'));