0

假设我有一个如下的数据库模式:

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模型中的关系这样做的帮助将不胜感激。

4

1 回答 1

1

您可以预先加载嵌套关系,您可以在文档中查看有关它们的更多信息。

Attendance::with('employee.department')->find($id);

如果您尝试在出勤和部门之间建立关系,您可能需要执行以下操作: 在出勤模型中:

public function employee()
{
    return $this->belongsTo(Employee::class);
}

在员工模型中:

public function department()
{
    return $this->belongsTo(Department::class);
}
于 2021-10-27T10:19:52.493 回答