En mi caso quería tener una pantalla para agregar una mascota seleccionando la raza a la que pertenece. Para ello necesito poder mostrar las razas que se encuentran en una tabla aparte de la de mascotas.
Al final la solución que encontré fue la de importar la clase modelo "Raza" para poder hacer un "find" y mandar los resultados a la vista utilizando una notación especial para que se ajuste bien a un combo box.
Controlador
<?php App::import('Model', 'Raza'); class MascotasController extends AppController { public $helpers = array('Html', 'Form'); public function add() { if ($this->request->is('post')) { // Código para salvar la mascota. } else { $raza = new Raza(); $razas = $raza->find('list', array( 'fields' => array('Raza.id', 'Raza.nombre') )); $this->set('razas', $razas); } } }
Vista
<h1>Agregar Mascota</h1> <?php echo $this->Form->create('Mascota'); echo $this->Form->input('nombre'); echo $this->Form->input('raza', array( 'type' => 'select', 'options' => $razas, 'empty' => false )); echo $this->Form->end('Guardar Mascota'); ?>
gracias por el ejemplo tan claro
ResponderEliminarGracias, me has salvado de horas de busquedas
ResponderEliminarMuy buen ejemplo! Fue de mucha ayuda! Muchas Gracias
ResponderEliminarMe tira este error cuando intento guardar, donde deberia estar definido $razas en la vista?
ResponderEliminarEste es un ejemplo que no cubre la parte de base de datos. Me imagino que el error te da porque no existe la tabla asociada a razas.
EliminarSimple y bien explicado, funciono en minutos, gracias!
ResponderEliminarexcelente aporte muy claro
ResponderEliminar