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.


Responder a