este es mi aspecto de tablas
| departamentos | curso | asignaturas |
|---|---|---|
| identificación | identificación | identificación |
| cabeza | departamento_id | id_del_curso |
| Nombre del curso | código_sujeto |
en mis modelos, así es como lo hago, pero parece que no funciona y no sé por qué:
public function departments() { return $this->hasOneThrough( subjectlist::class, department::class, 'id', 'course_id', 'id', 'id' ); } El resultado cuando trato de usar hasOneThrough :
{ "id": 1, "department_name": "Business", "head": "John smith", "email": "smith@gmail.com", "contact_number": "09300282103", "created_at": null, "updated_at": null, "subject_list": { "id": 1, "course_id": 1, "subject_code": "Math1", "description": "math test", "year_type": 1, "price": "200.00", "units": "5.00", "created_at": null, "updated_at": null, "laravel_through_key": 1 } }No quiero que la salida sea así, por favor ayúdenme a hacerlo:
{ "id": 1, "department_name": "Business", "head": "John smith", "email": "smith@gmail.com", "contact_number": "09300282103", "created_at": null, "updated_at": null, "subject_list": { "id": 1, "course_id": 1, "subject_code": "Math1", "description": "math test", "year_type": 1, "price": "200.00", "units": "5.00", "created_at": null, "updated_at": null, "laravel_through_key": 1 }, "department": { "id": 1, "department_name": "ComputerScience" } }La relación entre sus tablas es como Asunto como curso El curso tiene un departamento y el Asunto tiene un departamento a través del curso
Relación para su modelo de sujeto
public function Course() { return $this->belongsTo(Course::class); } public function Department() { return $this->hasOneThrough(Department::class, Course::class) }Relación para su modelo de curso
public function Subject() { return $this->hasMany(Subject::class); } public function Department() { return $this->belongsTo(Department::class); }Relación para el modelo de su departamento
public function Course() { return $this->hasMany(Course::class); }Para obtener más información, consulte la documentación de relaciones elocuentes de laravel https://laravel.com/docs/8.x/eloquent-relationships#has-one-through