如何在视图中获取laravel数据透视表记录?

时间:2017-04-11 06:58:24

标签: php laravel laravel-5 eloquent laravel-5.4

我有三张桌子。

  

用户:id,name

     

课程:id,user_id,name

     

订单:id,user_id,course_id(   数据透视表)

我如何确保该用户使用Laravel eloquent购买此特定课程。

1 个答案:

答案 0 :(得分:1)

首先,您需要在模型之间定义多对多的关系:

class User extends Model {
  public function courses() {
    return $this->belongsToMany(Course::class);
  }
}

获得后,您可以轻松检查用户是否已购买具有以下ID的课程的访问权限:

if ($user->courses()->find($courseId)) {
  // user has access to course with given $courseId
}

如果您只是想在未购买课程时引发错误,请拨打查找()来代替 findOrFail()

if ($user->courses()->findOrFail($courseId)) {
  // user has access to course with given $courseId
}