Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/11/2011, 10:49
Dav1d
 
Fecha de Ingreso: noviembre-2005
Mensajes: 186
Antigüedad: 18 años, 6 meses
Puntos: 1
Pregunta Problema en zend para añadir a un form un validator personalizado

Hola

Tengo un formulario, y en el campo email, el usuario podrá introducir varios emails separados por comas, luego hago un explode y añado dichos email al bcc de Zend Mail, pues bien, como hay un limite de emails que el usuario puede enviar, necesito una validación personalizada.

Leyendo en la documentación de Zend, he seguido unos pasos, pero como la documentación no esta clara o yo no me entero, me da error. Os cuento como lo he hecho.

En la carpeta library, he creado una carpeta llamada Custom y dentro de esta Validators

he creado un archivo php llamado Custom_Validators_LimiteEmails.php, cuyo código es:

Código PHP:
<?php
class Custom_Validators_LimiteEmails extends Zend_Validate_Abstract
{    
    public function 
isValid($value)
    {
        
$this->_setValue($value);
         
       
        
$maximo5;

        
$emails explode(','$value);
        if (
count($emails)>$maximo) {
            
$this->_error();
            return 
false;
        }
 
        return 
true;
    }
}
luego el código de mi formulario es:

Código PHP:
$email = new Zend_Form_Element_Text('email');
         
$email->setLabel('emails');
         
$email->setRequired(true)
                   ->
addValidator('NotEmpty',true)
                   ->
addValidator(new Custom_Validators_LimiteEmails()); 
además en el application.ini he añadido esto:

autoloadernamespaces[] = Custom_

pues bien, me da este error:

Código:
Warning: include_once(Custom\Validators\LimiteEmails.php) [function.include-once]: failed to open stream: No such file or directory in ...\library\Zend\Loader.php on line 146

Warning: include_once() [function.include]: Failed opening 'Custom\Validators\LimiteEmails.php' for inclusion (include_path='C:\xampp\htdocs\...\application/../library;C:\xampp\htdocs\...\library;.;C:\Program Files (x86)\Zend\ZendServer\bin\pear;C:\Program Files (x86)\Zend\ZendServer\share\ZendFramework\library;C:\Program Files (x86)\Zend\ZendServer\bin\PEAR\PHPUnit') in C:\xampp\htdocs\...\library\Zend\Loader.php on line 146

Fatal error: Class 'Custom_Validators_LimiteEmails' not found in C:\xampp\htdocs\...\application\forms\Formulario.php on line 43