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//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.