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
//Modelo Estudiante: class Estudiante extends Eloquent { protected $table = 'Estudiantes'; protected $primaryKey = 'estudiante_id'; public function notas() { return $this->hasMany('EstudianteNotas', 'estudiante_id'); } } //Modelo Asignatura: class Asignatura extends Eloquent { protected $table = 'Asignaturas'; protected $primaryKey = 'asignatura_id'; public function notas() { return $this->hasMany('EstudianteNotas', 'asignatura_id'); } } //Modelo EstudianteNotas: class EstudianteNotas extends Eloquent { protected $table = 'EstudianteNotasAsig'; public function asignatura() { return $this->belongsTo('Asignatura', 'asignatura_id'); } public function estudiante() { return $this->belongsTo('Estudiante', 'estudiante_id'); } }
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
$est=Estudiante::find(1); $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.