Foros del Web » Programando para Internet » PHP » Zend »

No Funciona Filtro StringToLower

Estas en el tema de No Funciona Filtro StringToLower en el foro de Zend en Foros del Web. Alguien me puede decir que estoy haciendo mal porque no me convierte a minúsculas: Código PHP:         $form -> addElement ( 'text' ,  'email' , array(              ...
  #1 (permalink)  
Antiguo 01/04/2011, 17:55
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 2 meses
Puntos: 1
No Funciona Filtro StringToLower

Alguien me puede decir que estoy haciendo mal porque no me convierte a minúsculas:
Código PHP:
        $form->addElement('text''email', array(
            
'Label' => 'E-Mail',
            
'Description' => 'El cambio de E-Mail no se completará hasta que se usted confirme la validación del mismo, ésta le llegará automáticamente al nuevo E-Mail.',
            
'Validators' => array(
                
'EmailAddress'
            
),
            
'Required' => false,
            
'Filters' => array(
                
'StringToLower'
            
)
        )); 
__________________
Le estaré agradecido por los siglos de los siglos a mi dios en PHP masterpuppet. Amen!
  #2 (permalink)  
Antiguo 01/04/2011, 18:03
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: No Funciona Filtro StringToLower

Va a pasar lo mismo que la anterior, lo mejor es que enseñes lo que haces.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 01/04/2011, 18:25
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: No Funciona Filtro StringToLower

Tenés razón, dejo el método completo:
Código PHP:
    public function indexAction()
    {
        
$usuario = new Zend_Session_Namespace('usuario');
        
$view $this->view;
        
        
$form = new Zend_Form;
        
$form
            
->setAction($view->baseUrl.'/usuario/index')
            ->
setMethod('post');
        
$form->addElement('text''email', array(
            
'Label' => 'E-Mail',
            
'Description' => 'El cambio de E-Mail no se completará hasta que se usted confirme la validación del mismo, ésta le llegará automáticamente al nuevo E-Mail.',
            
'Validators' => array(
                
'EmailAddress'
            
),
            
'Required' => false,
            
'Filters' => array(
                
'StringToLower'
            
)
        ));
        
$callback create_function('$arg''return ltrim($arg, "0");');
        
$filter = new Zend_Filter_Callback($callback);
        
$form->addElement('text''phone', array(
            
'Label' => 'Teléfono',
            
'Description' => 'El teléfono debe contener código de área sin anteponer 0, ni 15 para celulares.',
            
'Validators' => array(
                
'Digits',
                array(
'StringLength'false, array(1012))
            ),
            
'Required' => false,
            
'Filters' => array(
                
$filter
            
)
        ));
    
        
$form->clearDecorators()
            ->
setElementFilters(array('StringTrim'))
            ->
addDecorator('FormElements')
            ->
addDecorator('Form')
            ->
setElementDecorators(
                array(
                    array(
'Description', array('tag' => 'p')),
                    array(
'Errors'),
                    array(array(
'HtmlTag_2' => 'HtmlTag'), array('tag' => 'div''class' => 'qtip-html hidden')),
                    array(
'Label'),
                    array(array(
'HtmlTag_3' => 'HtmlTag'), array('tag' => 'div''style' => 'width:50%; float:left; text-align:right; margin-right:5px')),
                    array(
'ViewHelper'),
                    array(
'HtmlTag', array('tag' => 'div''class' => 'qtip''style' => 'width:50%; float:left;'))
                ),
                array(
                    
'submit'
                
),
                
false
            
);
        
        if (isset(
$_POST['submit'])) {
            if (
$form->isValid($_POST)) {
                
$values $form->getValues();
                
$usuario->unlock();
                            
                
// E-Mail
                
if (!empty($values['email'])) {
                    
$update['email'] = $values['email'];
                    
$usuario->email $values['email'];
                }
                if (!empty(
$values['phone'])) {
                    
$update['telefono'] = $values['phone'];
                    
$usuario->telefono $values['phone'];
                }
                
// Almacenar datos
                
if (count($update)) {
                    
$this->db->update('usuariosprimarios'$update"id = $usuario->usuarioprimario_id");
                    
$bool true;
                }
                if (
$bool) {
                    
$form->reset();
                    
$view->infoMessenger[] = 'Éxito al guardar.';
                }
                
$usuario->lock();
            } else 
$view->alertMessenger[] = 'Fallo al guardar, verifique los datos ingresados.';
        }
        
$view->usuario $usuario;
        
$view->form $form;
    } 
__________________
Le estaré agradecido por los siglos de los siglos a mi dios en PHP masterpuppet. Amen!
  #4 (permalink)  
Antiguo 01/04/2011, 18:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: No Funciona Filtro StringToLower

Haz un var_dump($values) despues del $values = $form->getValues(); y revisa si tiene los valores correctos.

Saludos.
  #5 (permalink)  
Antiguo 01/04/2011, 19:12
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: No Funciona Filtro StringToLower

Cita:
Iniciado por GatorV Ver Mensaje
Haz un var_dump($values) despues del $values = $form->getValues(); y revisa si tiene los valores correctos.

Saludos.
Tiene los valores correctos pero no filtra.
Código PHP:
Zend_Debug::dump($values);
array(
9) {
  [
"email"] => string(17"[email protected]"
  
["phone"] => string(0""

Encontré el problema y era que se pisaban los filtros, más precisamente el siguiente método era el que seteaba los elementos y se perdían los filtros agregados individualmente.
Código PHP:
$form->setElementFilters(array('StringTrim')); 
__________________
Le estaré agradecido por los siglos de los siglos a mi dios en PHP masterpuppet. Amen!

Última edición por CyberMauher; 02/04/2011 a las 16:20

Etiquetas: frameworks-y-php-orientado-a-objetos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:31.