En mi caso si es un campo de la tabla de la BD.

El 27 de agosto de 2011 08:57, Cristian haunsen
<[email protected]>escribió:

> 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.
>

-- 
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