Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/07/2015, 17:54
Avatar de detective_jd
detective_jd
 
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años
Puntos: 6
Respuesta: Subir Imagenes en CakePhp 2.6

Hola a todos, les cuento que solucioné mi problema, el error estaban en los setFlash de los métodos add y edit de AparatosController, quedándome así:

Controller: AparatosController.php:

public function add() {
if ($this->request->is('post')){
$this->Aparato->create();
if ($this->Aparato->save($this->request->data)){
$this->Session->setFlash('Registro guardado');
$this->redirect(array('action'=>'index'));
} else {
$this->Session->setFlash('Error al crear registro');
}
}
}

public function edit($id =null){
if (!$this->Aparato->findById($id)) {
throw new NotFoundException('El registro no existe');
}
if ($this->request->is(array('post', 'put'))) {
$this->Aparato->id = $id;
if ($this->Aparato->save($this->request->data)) {
$this->Session->setFlash('Registro Editado');
$this->redirect(array('action' => 'index'));
}
else{
$this->Session->setFlash('Error al editar registro');
}
}
else{
$options = array('conditions' => array('Aparato.' . $this->Aparato->primaryKey => $id));
$this->request->data = $this->Aparato->find('first', $options);
}
}

view/Aparatos/add.ctp:

<div class="container">
<div class="row">
<div class="col-md-6">
<?php echo $this->Form->create('Aparato', array('type' => 'file', 'novalidate' => 'novalidate')); ?>
<fieldset>
<legend>Crear Aparato</legend>
<?php
echo $this->Form->input('nombre', array('class' => 'form-control', 'label' => 'Nombre del Aparato:'));
echo $this->Form->input('descrip', array('class' => 'form-control', 'label' => 'Descripción del Aparato:'));
echo $this->Form->input('foto', array('type' => 'file', 'label' => 'Foto del Aparato:'));
echo $this->Form->input('foto_dir', array('type' => 'hidden'));
?>
</fieldset>
<?php echo $this->Form->end(array('label' => 'Aceptar', 'class' =>'btn btn-success')); ?>
<p>
<?php echo $this->Html->link("[Cancelar]", array('action'=>'index')); ?>
</p>
</div>
</div>
</div>

view/Aparatos/edit.ctp:

<div class="container">
<div class="row">
<div class="col-md-6">
<?php echo $this->Form->create('Aparato', array('type' => 'file', 'novalidate' => 'novalidate')); ?>
<fieldset>
<legend>Editar Aparato</legend>
<?php
echo $this->Form->input('id', array('type' => 'hidden'));
echo $this->Form->input('nombre', array('class' => 'form-control', 'label' => 'Nombre del Aparato:'));
echo $this->Form->input('descrip', array('class' => 'form-control', 'label' => 'Descripción del Aparato:'));
echo $this->Form->input('foto', array('type' => 'file', 'label' => 'Foto del Aparato:'));
echo $this->Form->input('foto_dir', array('type' => 'hidden'));
?>
</fieldset>
<?php echo $this->Form->end(array('label' => 'Aceptar', 'class' =>'btn btn-success')); ?>
<p>
<?php echo $this->Html->link("[Cancelar]", array('action'=>'index')); ?>
</p>
</div>
</div>
</div>

Model: Aparato.php

<?php
App::uses('AppModel', 'Model');
/**
* CakePHP Aparato
* @author detectivejd
*/
class Aparato extends AppModel {
public $displayField = 'nombre';
/*-------------------------------*/
public $actsAs = array(
'Upload.Upload' => array
(
'foto' => array(
'fields' => array(
'dir' => 'foto_dir'
),
'thumbnailMethod'=> 'php',
'thumbnailSizes' => array
(
'vga' => '640x480',
'thumb' => '150x150'
),
'deleteOnUpdate' => true,
'deleteFolderOnDelete' => true
)
)
);
/*--------------------------------*/
public $validate=array(
'nombre' => array(
'notEmpty' => array(
'rule' => 'notEmpty',
'message' => 'Ingrese Nombre del Aparato',
),
'isUnique' => array(
'rule' => 'isUnique',
'message' => 'El Aparato ya Existe',
'on' => 'create'
)
),
- mostrar texto citado -

usando el plugin Upload y anda de maravillas, gracias a todos los que me ayudaron, ahora para terminar con esta parte del sistema tengo q ver cómo hacer que los mensajes de error y mensajes de afirmación sean de estilo diferente en los setFlash.

Saludos