【发布时间】:2021-12-06 07:05:43
【问题描述】:
我有一个多租户设置,其中一个租户 HasMany 工作区和一个工作区 BelongsToMany 学生。如何从租户创建关系,从租户内的所有工作区检索所有学生?
我查看了hasManyThrough,但这并不能解决问题。现在我有这个功能:
public function getStudents()
{
$this->workspaces()->get()->map(function ($workspace) {
return $workspace->students;
})->flatten()->unique();
}
但我想在关系中而不是上面的代码中这样做。有什么建议吗?
Tenant :HasMany=> Workspace(tenant_id) :BelongsToMany=> Student(student_workspace table)
提前致谢!
【问题讨论】:
-
“workspaces”和“students”表(类似于“student_workspace”)之间是否有中间(数据透视)表?我假设您也应该拥有该数据透视表,因为我认为任何工作区都可以有多个学生,每个学生都可以有多个工作区。我说的对吗??
标签: php laravel database eloquent relation