Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/02/2015, 18:00
nh2006
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
consulta a 3 trablas con eloquent

Hola amigos,

Necesito hacer una consulta a tres tablas con eloquent, pero solamente logro obtener información parcial, para ser más claro les pongo lo siguiente:


Tengo las siguientes tablas:

Estudiantes:
->estudiante_id
->estudiante_nombre
->estudiante_apellido

Asignaturas:
->asignatura_id
->asignatura_nombre

EstudianteNotasAsig
->estudiante_id
->asignatura_id
->nota

Tengo los siguientes modelos:

Código PHP:
Ver original
  1. //Modelo Estudiante:
  2. class Estudiante extends Eloquent {
  3.  
  4.     protected $table = 'Estudiantes';
  5.     protected $primaryKey = 'estudiante_id';
  6.    
  7.     public function notas()
  8.     {
  9.         return $this->hasMany('EstudianteNotas', 'estudiante_id');
  10.     }  
  11. }
  12.  
  13. //Modelo Asignatura:
  14. class Asignatura extends Eloquent {
  15.  
  16.     protected $table = 'Asignaturas';
  17.    
  18.     protected $primaryKey = 'asignatura_id';
  19.    
  20.     public function notas()
  21.     {
  22.         return $this->hasMany('EstudianteNotas', 'asignatura_id');
  23.     }
  24. }
  25.  
  26. //Modelo EstudianteNotas:
  27. class EstudianteNotas extends Eloquent {
  28.  
  29.     protected $table = 'EstudianteNotasAsig';
  30.    
  31.     public function asignatura()
  32.     {
  33.         return $this->belongsTo('Asignatura', 'asignatura_id');
  34.     }
  35.    
  36.     public function estudiante()
  37.     {
  38.         return $this->belongsTo('Estudiante', 'estudiante_id');
  39.     }
  40.  
  41. }


Lo que quiero hacer es que dado un estudiante, quiero listar todas sus materias con sus respectivas notas, he aplicado lo siguiente:

Código PHP:
Ver original
  1. $est=Estudiante::find(1);
  2. $est->notas;

He logrado obtener solamente las notas de un estudiante, pero no logro obtener el nombre de las materias.

¿cómo podría obtener el nombre de las materias junto a cada nota?

Con Query Builder sé que es posible creando instrucciones sql, pero lo quiero hacer ocupando las relaciones entre objetos que he establecido.

Gracias desde ya por su ayuda.