No me funciona en el add.
Quizas sea porque el campo no es un campo de la tabla de la DB, aunque dudo
que sea por eso. Nunca he tenido problemas en otras ocasiones.
Explico un poco mejor:

En el modelo (room.php) tengo lo siguiente:

    public $validate = array(
        'name' => array(
                'notEmpty' => array(
                        'rule' => 'notEmpty',
                        'allowEmpty' => false,
                        'message' => 'no vacio',
                        'last' => 'on'
                ),
                'isUnique' => array(
                    'rule' => 'isUnique',
                    'allowEmpty' => false,
                    'message' => 'El nombre ya existe',
                    'last' => 'on'
                )
        ),
        'description' => array(
                'notEmpty' => array(
                        'rule' => 'notEmpty',
                        'allowEmpty' => false,
                        'message' => 'no vacio',
                        'last' => 'on'
                )
        ),
*        'image' => array(
            'rule' => array(
                    'extension', array('png','jpg', 'jpeg', 'gif')),
                'required' => true,
                'allowEmpty' => false,
                'message' => 'Archivo inválido',
                'last' => 'on'
               )*

    );

El campo en negrita NO es un capo de la tabla.

Y en el controller tengo lo siguiente:
if (!empty($this->data)){
          $this->Room->set( $this->data );
            if ($this->Room->validates()) {

            // con esta linea obtengo el URL de la imagen subida al server.
            $this->data['Room']['flag'] =
$this->__upload($this->data['Room']['image']);
            $this->Room->create();
            if($this->Room->save($this->data)){
                $this->Session->setFlash('Se guardó (pero hay que
cambiarlo)');
                $this->redirect(array('controller' => 'rooms', 'action' =>
'add' ));
            }
            }

y la vista

<?php echo $this->Form->create('Room', array('type' => 'file',
'inputDefaults' => array( 'label' => false, 'div' => false))); ?>
<?php echo $this->Form->file('image'); ?>
....
...
<?php echo $this->Form->end(); ?>


Saludos. y espero respuestas.



El 26 de agosto de 2011 20:13, sandra milena mendoza
<[email protected]>escribió:

> si me funciona perfectamente en el add.  En que action no te funciona? en
> el add o en el edit?
>
> El 26 de agosto de 2011 16:20, Cristian haunsen <[email protected]
> > escribió:
>
>> En la vista no has tenido problemas mostrando el mensaje?
>> Te pregunto esto porque si bien la validacion funciona, es decir que no me
>> permite enviar el formulario, el mensaje de error no aparece
>>
>> Saludos
>>
>> El 11 de agosto de 2011 12:40, Dani F. Serch <[email protected]>escribió:
>>
>> No sabía que se podía comprobar la extensión de los archivos subidos desde
>>> validate!
>>> Gracias Sandra
>>>
>>> El 11 de agosto de 2011 04:37, sandra milena mendoza <
>>> [email protected]> escribió:
>>>
>>> Solucionado,
>>>>
>>>>        'imagen' => array(
>>>>                'rule' => array(
>>>>                        'extension',
>>>>                                array('pdf','txt')),
>>>>                'required' => true,
>>>>                'allowEmpty' => true,
>>>>                'message' => 'Archivo inválido'
>>>>                )
>>>>
>>>>
>>>> On 10 ago, 21:11, sandra milena mendoza <[email protected]> wrote:
>>>> > Buenas noches,
>>>> >
>>>> > Necesito validar un campo tipo file:  $this->Form-
>>>> >
>>>> > >input('imagen',array('type'=>'file', 'label' =>'Archivo 1'));
>>>> >
>>>> > pero me salen errores.
>>>> >
>>>> > Mi validacion es,
>>>> >
>>>> > var $validate =array (
>>>> >         'imagen' => array(
>>>> >                 'rule' => 'notEmpty',
>>>> >                 'required' => true,
>>>> >                 'message' => 'Requerido'
>>>> >                 )
>>>> >                 );
>>>>
>>>> --
>>>> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de
>>>> Grupos de Google.
>>>> Para publicar una entrada en este grupo, envía un correo electrónico a
>>>> [email protected].
>>>> Para anular tu suscripción a este grupo, envía un correo electrónico a
>>>> [email protected]
>>>> Para tener acceso a más opciones, visita el grupo en
>>>> http://groups.google.com/group/cakephp-es?hl=es.
>>>>
>>>>
>>>  --
>>> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de
>>> Grupos de Google.
>>> Para publicar una entrada en este grupo, envía un correo electrónico a
>>> [email protected].
>>> Para anular tu suscripción a este grupo, envía un correo electrónico a
>>> [email protected]
>>> Para tener acceso a más opciones, visita el grupo en
>>> http://groups.google.com/group/cakephp-es?hl=es.
>>>
>>
>>  --
>> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de
>> Grupos de Google.
>> Para publicar una entrada en este grupo, envía un correo electrónico a
>> [email protected].
>> Para anular tu suscripción a este grupo, envía un correo electrónico a
>> [email protected]
>> Para tener acceso a más opciones, visita el grupo en
>> http://groups.google.com/group/cakephp-es?hl=es.
>>
>
>
> *
> *
>
>  --
> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de
> Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a
> [email protected].
> Para anular tu suscripción a este grupo, envía un correo electrónico a
> [email protected]
> Para tener acceso a más opciones, visita el grupo en
> http://groups.google.com/group/cakephp-es?hl=es.
>

-- 
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a 
[email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a 
[email protected]
Para tener acceso a más opciones, visita el grupo en 
http://groups.google.com/group/cakephp-es?hl=es.

Responder a