2012-08-27 18 views
6

Así que estoy usando Zend y tengo una forma Zend con un Zend_Form_Element_File y tres validadores: 1. setRequired 2. Extensión 3. TamañoCómo establecer un mensaje de error personalizado zend form element file?

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

Quiero configurar mensajes de error personalizados para estos validadores pero no se como.

El motivo por el que deseo establecer un mensaje de error personalizado es porque tengo un decorador personalizado con el cual capturo todos los errores cuando el formulario no es válido con isValid() y los visualizo en la parte superior del formulario. El método por el que estoy cometiendo errores en el formulario es getErrors().

También he intentado: http://www.mail-archive.com/[email protected]/msg25779.html haciendo:

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

y haciendo

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

Cualquier ayuda?

Respuesta

18

así es como utilizo para establecer un mensaje de validador personalizado.

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

aquí están algunos de los enlaces que pueden ser útiles para comprender el mensaje del validador personalizado.

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

Gracias por esto! He estado buscando una forma de hacerlo, pero no fue demasiado claro en los documentos. –

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

Para añadir un mensaje personalizado sobre Zend_Form_Element_File, véase el siguiente código,

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