Laravel 模型中的 hasOneThrough 关系
Laravel hasOneThrough Relationship In Model
假设我有一个数据库模式如下:
Department -> id | department_name
Employee -> id | department_id | name
Attendance -> id | employee_id | timestamp
我可以使用 hasManyThrough
关系从 Department
模型中检索部门的所有出勤情况,如下所示:
public function attendance() {
return $this->hasManyThrough(EmployeeAttendance::class, Employee::class, 'department_id', 'employee_id', 'id', 'id');
}
但是,我正在尝试做相反的事情,即从出勤模型中检索员工的部门。我曾尝试使用 hasOneThrough
关系,但我无法获得它。我已经查看了文档以及相同的其他教程。任何关于如何通过 Attendance
模型中的关系来做到这一点的帮助将不胜感激。
您可以预先加载嵌套关系,您可以在 documentation.
中看到更多关于它们的信息
Attendance::with('employee.department')->find($id);
如果你想在出勤率和部门之间建立关系,你会想做这样的事情:
在出勤模型中:
public function employee()
{
return $this->belongsTo(Employee::class);
}
在员工模型中:
public function department()
{
return $this->belongsTo(Department::class);
}
假设我有一个数据库模式如下:
Department -> id | department_name
Employee -> id | department_id | name
Attendance -> id | employee_id | timestamp
我可以使用 hasManyThrough
关系从 Department
模型中检索部门的所有出勤情况,如下所示:
public function attendance() {
return $this->hasManyThrough(EmployeeAttendance::class, Employee::class, 'department_id', 'employee_id', 'id', 'id');
}
但是,我正在尝试做相反的事情,即从出勤模型中检索员工的部门。我曾尝试使用 hasOneThrough
关系,但我无法获得它。我已经查看了文档以及相同的其他教程。任何关于如何通过 Attendance
模型中的关系来做到这一点的帮助将不胜感激。
您可以预先加载嵌套关系,您可以在 documentation.
中看到更多关于它们的信息Attendance::with('employee.department')->find($id);
如果你想在出勤率和部门之间建立关系,你会想做这样的事情: 在出勤模型中:
public function employee()
{
return $this->belongsTo(Employee::class);
}
在员工模型中:
public function department()
{
return $this->belongsTo(Department::class);
}