加入Laravel
Join in Laravel
我正在做一个 laravel 项目,我遇到了这个小问题。
我有两个 tables users
和 enrolls
,用户可以在其中注册课程,然后我将 user_id
和 course_id
存储在enroll
table.
现在我想通过 course_id
获取注册特定课程的用户
$users = SELECT * FROM users WHERE...
谢谢
没有表的模式有点困难,但您可以像这样在模型中使用查询构建器:
$users = DB::table('users')
->join('enroll', 'users.id', '=', 'enroll.user_id')
->get();
以更 Laravel 的方式。
在用户模型中
public function enrollments()
{
return $this->belongsToMany(Course::class, 'enrollment', 'user_id');
}
课程中class
public function enrollers()
{
return $this->belongsToMany(User::class, 'enrollment', 'course_id');
}
然后您只需调用 $user->enrollments()
即可获得用户已注册的课程。反之亦然,您可以 $course->enrollers()
让用户注册该课程。
在 Laravel docs 中了解更多关于多对多关系的信息。
我正在做一个 laravel 项目,我遇到了这个小问题。
我有两个 tables users
和 enrolls
,用户可以在其中注册课程,然后我将 user_id
和 course_id
存储在enroll
table.
现在我想通过 course_id
$users = SELECT * FROM users WHERE...
谢谢
没有表的模式有点困难,但您可以像这样在模型中使用查询构建器:
$users = DB::table('users')
->join('enroll', 'users.id', '=', 'enroll.user_id')
->get();
以更 Laravel 的方式。
在用户模型中
public function enrollments()
{
return $this->belongsToMany(Course::class, 'enrollment', 'user_id');
}
课程中class
public function enrollers()
{
return $this->belongsToMany(User::class, 'enrollment', 'course_id');
}
然后您只需调用 $user->enrollments()
即可获得用户已注册的课程。反之亦然,您可以 $course->enrollers()
让用户注册该课程。
在 Laravel docs 中了解更多关于多对多关系的信息。