Hola, estoy realizando en cakephp una aplicacion pero tengo un problema con la funcion edit ya que tanto la funcion add como el index me funciona a la perfección pero tengo un problema a la hora de editar el contenido de una tabla. Al pulsar a "editar" que hay en el index.ctp me muestra la vista edit.ctp pero sin datos, cuando deberia mostrar los datos de ese registro. Pongo como tengo el controller y la vista edit.ctp
CONTROLLER
<?php
class MovimientosController extends AppController{
var $name = 'Movimientos';
var $helpers = array('Html', 'Form', 'Time');
function edit($id = null) {
if (!$id) {
$this->Session->setFlash('Movimiento no Válido');
$this->redirect(array('action'=>'index'), null, true);
}
if (empty($this->data)) {
$this->data = $this->Movimiento->find(array('id' => $id));
} else {
if ($this->Movimiento->save($this->data)) {
$this->Session->setFlash('Movimiento salvado');
$this->redirect(array('action'=>'index'), null, true);
}
}
$conceptos = $this->Movimiento->Concepto->find('list',array('conditions'=>array('Movimiento .concepto_id'=>'Concepto.id'),'fields'=>array('Con cepto.concepto')));
$this->set('conceptos', $conceptos);
} }
?>
VISTA EDIT.CTP
<?php echo $form->create('Movimiento');?>
<fieldset>
<legend>Edita Movimiento</legend>
<?php
echo $form->hidden('id');
echo $form->input('fecha');
echo $form->input('concepto');
echo $form->input('tipomov');
echo $form->input('notas');
echo $form->input('cantidad');
?>
</fieldset>
<?php echo $form->end('Salvar');?>
<?php echo $html->link('Listar Todas los Movimientos', array('action'=>'index')); ?>
<br />
<?php echo $html->link('Agregar Movimiento', array('action'=>'add')); ?>
La tabla movimientos tiene los siguientes campos:
id integer primary key
concepto_id integer clave secundaria
fecha date
tipomov varchar(1)
notas varchar(200)
La tabla conceptos:
id integer primary key
concepto varchar(50)
La relacion de concepto movimiento es 1->N
Alguien sabria decirme como editar los datos la tabla movimiento junto con el campo "concepto" de la tabla concepto.
Gracias de antemano