Ensaya con recursive=2 o recursive=3 y para visualizarlos, utiliza la funcion debug(); y luego un foreach, pra mostrarlo.
El viernes, 14 de junio de 2013 09:50:35 UTC-5, Fabián Olmos escribió:
>
> Estoy intentando realizar una consulta entre modelos relacionados mediante
> HABTM, los modelos son Estudiante, Representante y EstudiantesRepresentante
> (campos : id, estudiante_id, representante_id), quiero listar los
> representantes de un estudiante mediante el id del estudiante.
>
> estoy utilizando la función find de la siguiente manera
>
> $this->Representante->find('all',
> array(
>
> 'conditions'=>'EstudiantesRepresentante.estudiante_id'=>$id,
> 'recursive'=>1,
> 'joins'=>array(
>
>
> array(
>
> 'table' => 'estudiantes_representantes',
>
> 'alias' => 'EstudiantesRepresentante',
>
> 'type' => 'INNER',
>
> 'conditions' => array(
>
> 'Representante.id
> = EstudiantesRepresentante.representante_id',
>
> )
>
> )
>
> )
> )
> );
> hasta aquí todo perfecto porque me trae la data referente al representante
> y al estudiante. Ahora mi pregunta: Como puedo traer los datos referente al
> Estudiante, es decir, los datos de los modelos con quien este se relaciona,
> porque hace "recursive" -1 en cuanto al Estudiante ?, por otra parte yo
> puedo hacer esto (joins anidados):
>
> $this->Representante->find('all',
> array(
>
> 'conditions'=>'EstudiantesRepresentante.estudiante_id'=>$id,
> 'recursive'=>1,
> 'joins'=>array(
>
>
> array(
>
> 'table' => 'estudiantes_representantes',
>
> 'alias' => 'EstudiantesRepresentante',
>
> 'type' => 'INNER',
>
> 'conditions' => array(
>
> 'Representante.id
> = EstudiantesRepresentante.representante_id',
>
> ),
>
> 'joins'=> array(
>
> array(
>
> 'table' =>
> 'estudiantes_representantes',
>
> 'alias' =>
> 'EstudiantesRepresentante',
>
> 'type' => 'INNER',
>
> 'conditions' => array(
>
>
> 'Representante.id = EstudiantesRepresentante.representante_id',
>
> ),
>
> )
>
> ),
>
>
>
> )
>
> )
> )
> );
>
>
> Representante.php
>
> class Representante extends AppModel {
> public $name = 'Representante';
> public $belongsTo = array(
> 'Vinculo',
> 'Nacionalidad'
> );
> public $hasAndBelongsToMany = array(
> 'Estudiante' =>
> array(
> 'className' => 'Estudiante',
> 'joinTable' => 'estudiantes_representantes',
> 'foreignKey' => 'representante_id',
> 'associationForeignKey' => 'estudiante_id',
> 'unique' => 'keepExisting',
> 'With' => 'EstudiantesRepresentante'
> )
> );
> }
>
> Estudiante.php
>
> class Estudiante extends AppModel {
> public $name = 'Estudiante';
> var $virtualFields = array(
> 'fec_nac' => "TO_CHAR(Estudiante.fec_nac, 'dd/mm/YYYY')"
> );
> public $belongsTo = array(
> 'Nivel',
> 'Estado',
> 'Municipio',
> 'Parroquia',
> 'Nacionalidad',
> );
> public $hasMany = array(
> 'EstudiantesEmpresasOficio'
> );
> }
>
>
> Gracias de antemano. Saludos.
>
>
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos
de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos
electrónicos, envía un correo electrónico a
[email protected].
Para publicar una entrada en este grupo, envía un correo electrónico a
[email protected].
Visita este grupo en http://groups.google.com/group/cakephp-es.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
