Edición de «Como Crear Relacion 1:N KumbiaPHP Framework»
De KumbiaPHP Framework Wiki
Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.
Revisión actual | Tu texto | ||
Línea 1: | Línea 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
En este ejemplo se explica como se realizan asociaciones sobre nuestro modelos haciendo uso de las '''Relaciones de ActiveRecord'''. | En este ejemplo se explica como se realizan asociaciones sobre nuestro modelos haciendo uso de las '''Relaciones de ActiveRecord'''. | ||
Línea 52: | Línea 46: | ||
<source lang=php> | <source lang=php> | ||
− | |||
class Profesionales extends ActiveRecord | class Profesionales extends ActiveRecord | ||
{ | { | ||
Línea 61: | Línea 54: | ||
$this->belongs_to('especialidades'); | $this->belongs_to('especialidades'); | ||
} | } | ||
+ | public function getEspecialidades( $estado = 1 ){ | ||
+ | //Devuelve una consulta de acuerdo al estado dado | ||
+ | $this->especialidades = $this->Especialidades->find("condictions: activo=" . $estado); | ||
+ | } | ||
} | } | ||
</source> | </source> | ||
Línea 66: | Línea 63: | ||
<source lang=php> | <source lang=php> | ||
− | |||
class Especialidades extends ActiveRecord | class Especialidades extends ActiveRecord | ||
{ | { | ||
Línea 75: | Línea 71: | ||
$this->has_many('profesionales'); | $this->has_many('profesionales'); | ||
} | } | ||
+ | public function getProfesionales( $estado = 1 ){ | ||
+ | //Devuelve una consulta de acuerdo al estado dado | ||
+ | $this->profesionales = $this->Profesionales->find("condictions: activo=" . $estado); | ||
+ | } | ||
} | } | ||
</source> | </source> | ||
Línea 81: | Línea 81: | ||
Suponiendo que necesitamos crear una lista de los profesionales guardados en la tabla profesionales con sus respectivas especialidades. | Suponiendo que necesitamos crear una lista de los profesionales guardados en la tabla profesionales con sus respectivas especialidades. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === Obteniendo las Relación de Profesionales=== | |
+ | Para obtener la relación de un profesional obviamente hay que recorrer el array que devolvió el método [[Consultas#find | find()]] pero internamente en cada objecto esta la relación porque así fue definida, Un Profesional tiene una Especialidad. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Vista [ listar.phtml ] === | === Vista [ listar.phtml ] === | ||
Línea 121: | Línea 103: | ||
<tr> | <tr> | ||
<td><?php echo $profesional->apellido . ", " . $profesional->nombre ?></td> | <td><?php echo $profesional->apellido . ", " . $profesional->nombre ?></td> | ||
− | <td><?php echo $profesional->getEspecialidades()->nombre ?></td> | + | <td><?php echo $profesional->getEspecialidades('1')->nombre ?></td> |
</tr> | </tr> | ||
<?php endforeach;?> | <?php endforeach;?> | ||
Línea 127: | Línea 109: | ||
</div><br><br> | </div><br><br> | ||
</source> | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Screenshot de la Vista === | === Screenshot de la Vista === | ||
Línea 153: | Línea 118: | ||
Para obtener la relación de las Especialidades, se debe obtener la lista de especialidades y luego, por cada una de las especialidades, agrupar los profesionales que tienen esa especialidad. | Para obtener la relación de las Especialidades, se debe obtener la lista de especialidades y luego, por cada una de las especialidades, agrupar los profesionales que tienen esa especialidad. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== En la Vista correspondiente === | === En la Vista correspondiente === | ||
Línea 188: | Línea 133: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
− | <?php foreach ($especialidad->getProfesionales() as $profesional) : ?> | + | <?php foreach ($especialidad->getProfesionales('1') as $profesional) : ?> |
<td><?php echo $profesional->apellido .", ".$profesional->nombre ?></td> | <td><?php echo $profesional->apellido .", ".$profesional->nombre ?></td> | ||
<td><?php echo $profesional->telefono1 ?></td> | <td><?php echo $profesional->telefono1 ?></td> | ||
Línea 203: | Línea 148: | ||
'''Realizado Por: Adrián Murúa (adolphm)''' | '''Realizado Por: Adrián Murúa (adolphm)''' | ||
− |