Diferencia entre revisiones de «Como Crear Relacion 1:N KumbiaPHP Framework»
Línea 53: | Línea 53: | ||
==La Consulta== | ==La Consulta== | ||
+ | La consulta seria en un controller...<br><br> | ||
+ | |||
+ | $this->profesionales = $this->Profesionales->find();<br><br><br> | ||
+ | |||
+ | y para obetener la relacion de un profesional obviamente hay q recorrer el array que devolvio el find pero internamente en cada objecto esta la relacion porque asi la definimos 1 profesional tiene una especialidad.<br><br><br> | ||
+ | foreach ($profesionales as $profesional){<br> | ||
+ | echo $profesional->nombre;<br> | ||
+ | echo $profesional->Especialidades()->nombre;<br> | ||
+ | }<br> |
Revisión del 16:26 22 sep 2009
Aquí Breve explicación...
Estructura de las Tablas
CREATE TABLE `profesionales` ( `id` INTEGER(11) NOT NULL AUTO_INCREMENT, `apellido` VARCHAR(45) COLLATE utf8_spanish_ci NOT NULL DEFAULT '', `nombre` VARCHAR(45) COLLATE utf8_spanish_ci NOT NULL DEFAULT '', )ENGINE=InnoDB
CREATE TABLE `especialidades` ( `id` INTEGER(11) NOT NULL AUTO_INCREMENT, `nombre` VARCHAR(45) COLLATE utf8_general_ci NOT NULL DEFAULT '', `profesionales_id` INTEGER(11) NOT NULL, )ENGINE=InnoDB
Descripcion del Modelo
El mnodelo esta compuesto por dos tablas: Profesionales y Especialidades, la tabla 'profesionales' esta diseñada para llevara los datos de todos los profesionales de una empresa interdisciplinaria, estos profesionales pueden ser: medicos, abogados, ingenieros, etc.
La tabla 'especialidades' hace referencia a las distintas orientaciones dentro la profesion , por ejemplo:
Profesion: Medico || especialidad: clinico, cardiologo, oftalmologo, etc.
Profesion: Ingeniero || especialidad: civil, sistemas, contrucciones, electronicos, etc.
Las tablas estan creadas en mysql , y estan relacionadas por el campo 'id'.
El Modelo
class Profesionales extends ActiveRecord {
public function initialize() { //Relaciones //Un profesional tiene una especialidad $this->belongs_to('especialidad'); }
}
class Especialidades extends ActiveRecord {
public function initialize() { //Relaciones //Un especialidad tiene muchos profesionales $this->has_many('profesionales'); }
}
La Consulta
La consulta seria en un controller...
$this->profesionales = $this->Profesionales->find();
y para obetener la relacion de un profesional obviamente hay q recorrer el array que devolvio el find pero internamente en cada objecto esta la relacion porque asi la definimos 1 profesional tiene una especialidad.
foreach ($profesionales as $profesional){
echo $profesional->nombre;
echo $profesional->Especialidades()->nombre;
}