例如,我正在制作一个应用程序,使教师能够管理科目(添加,删除等),而用户不会做同样的事情,他/她只会参加教师的考试。
我的问题是,既然老师和学生都使用相同的模型(用户)和表,我如何设置他们的关系?
由于教师必须控制科目,在用户模型中,我将执行以下操作:
public function subjects() { return $this->hasMany(Subject::class); }
在Subject模型中:
public function user() { return $this->belongsTo(User::class); }
但那个学生呢
既然使用者对主体没有控制权,那么他一定没有这种关系,对吗?当我执行User::subjects()时,无论用户的角色是什么,User模型中的subjects()函数都会被正确调用,所以我怎么能只将角色分配给教师而不是学生呢?
我应该做:
public function subjects() {
// for student
if($this->role == 'student') {
return 'You do not own the subjects'
}
// for teacher
return $this->hasMany(Subject::class);
}
我将感激任何帮助。谢谢!
1条答案
按热度按时间ikfrs5lh1#