[英]How to access data of a pivot table ( many to many relationship laravel )
[英]laravel many to many relationship get data from pivot table
我在用户和课堂模型之间存在多对多关系
这是结构:
- users
- id
- name
- classroom_user
- classroom_id
- user_id
- is_teacher
- classrooms
- id
- name
这是关系:
用户模型:
public function classrooms() {
return $this->belongsToMany(Classroom::class)->withPivot('is_teacher');
}
课堂模式:
public function users() {
return $this->belongsToMany(User::class)->withPivot('is_teacher');
}
public function teachers() {
return $this->belongsToMany(User::class)->where('is_teacher','=',1);
}
public function students() {
return $this->belongsToMany(User::class)->where('is_teacher','=',0);
}
我想通过获取 is_teacher 列的值来检查当前登录的用户是否是当前教室中的老师。
目前这样做:
auth::user()->classrooms->find($classroom->id)->pivot->is_teacher
有一个更好的方法吗?
如果教室不存在,我会这样做以避免出现问题:
$classroom = auth::user()->classrooms()->find($classroom->id);
if (! $classrooom) {
// throw/return an error accordingly
}
$isTeacher = $classrooom->pivot->is_teacher
PS:做带括号的教室是极其重要的,否则你就是把属于用户的教室全部归还,在PHP端做过滤。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.