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.
