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 66: | Línea 59: | ||
<source lang=php> | <source lang=php> | ||
− | |||
class Especialidades extends ActiveRecord | class Especialidades extends ActiveRecord | ||
{ | { | ||
Línea 81: | Línea 73: | ||
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. | ||
− | == | + | ===En el controller=== |
− | |||
− | === | ||
− | |||
− | |||
− | |||
<source lang=php> | <source lang=php> | ||
− | + | ... | |
− | + | public function listar() | |
− | |||
− | |||
− | |||
− | public function listar() | ||
{ | { | ||
− | + | $this->profesionales = $this->Profesionales->find(); | |
− | |||
− | |||
} | } | ||
− | + | ... | |
− | + | //los puntos (...) indican que hay una definicion de un controller | |
</source> | </source> | ||
− | === Obteniendo las Relación de Profesionales === | + | === 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 | + | 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 | + | <source lang=php> |
+ | foreach ($profesionales as $profesional){ | ||
+ | echo $profesional->nombre; | ||
+ | echo $profesional->Especialidades()->nombre;//imprime la relación | ||
+ | } | ||
+ | </source> | ||
+ | === Vista [ Metodo listar() ] === | ||
<source lang=php> | <source lang=php> | ||
<?php View::content()?> | <?php View::content()?> | ||
+ | </source><br> | ||
+ | <source lang=html4strict> | ||
<br><br> | <br><br> | ||
<div align="center"> | <div align="center"> | ||
Línea 118: | Línea 107: | ||
<td>Especialidad</td> | <td>Especialidad</td> | ||
</tr> | </tr> | ||
+ | </source><br> | ||
+ | <source lang=php> | ||
<?php foreach ($profesionales as $profesional) :?> | <?php foreach ($profesionales as $profesional) :?> | ||
<tr> | <tr> | ||
<td><?php echo $profesional->apellido . ", " . $profesional->nombre ?></td> | <td><?php echo $profesional->apellido . ", " . $profesional->nombre ?></td> | ||
− | <td><?php echo $profesional-> | + | <td><?php echo $profesional->Especialidades()->nombre ?></td> |
</tr> | </tr> | ||
<?php endforeach;?> | <?php endforeach;?> | ||
+ | </source><br> | ||
+ | <source lang=html4strict> | ||
</table> | </table> | ||
</div><br><br> | </div><br><br> | ||
</source> | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Screenshot de la Vista === | === Screenshot de la Vista === | ||
− | [[Archivo: | + | [[Archivo:vista_listar.jpg]] |
=== Obteniendo las Relación de Especialidades === | === Obteniendo las Relación de Especialidades === | ||
Línea 153: | Línea 129: | ||
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 el Controller [EspecialidadesController] === |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |