php - 如何为访问同一课程表的两个用户(教师、学生)创建数据透视表,该课程表使用 Laravel 分配和注册
问题描述
我在创建 laravel 在上述主题上支持的数据库结构时遇到问题。我的表的结构是这样的。
用户表:
- 姓名
- 类型
- 电子邮件
- 密码
课程
- 姓名
- 描述
每当教师和学生登录系统时,我都使用单个用户表对他们进行身份验证。“类型”列用于定义用户类型,即管理员、教师和学生。
现在问题来了。系统要求是:
要求
- 课程列表显示课程中分配的教师
- 教师由管理员分配课程
- 老师将学生招入他们的班级
- 学生在注册后也会看到他们的课程,也会显示课程老师。
如何在 laravel 中为这种情况构建数据透视表,因为根据我的想法,这就是我的想法。
course_user
- course_id
- 用户身份
但是我无法确定这门课程是分配给这个老师的,而这个老师已经使用同一个数据透视表让这个学生注册了这个特定的课程。
请帮我解惑。
谢谢....
解决方案
使用额外的文件管理器创建两个关系函数,如下所示:
class Course extends Model
{
...
public function teachers()
{
return $this->belongsToMany(User::class)->where('type', '=', User::TEACHER);
}
public function students()
{
return $this->belongsToMany(User::class)->where('type', '=', User::STUDENT);
}
}
我假设您在 User 类中使用类常量。