Php 仅允许附加的身份验证用户[课程所有者]访问课程查看页面[LARAVEL策略]

Php 仅允许附加的身份验证用户[课程所有者]访问课程查看页面[LARAVEL策略],php,laravel,eloquent,Php,Laravel,Eloquent,我正试图限制授权用户仅访问他们所附的课程 我尝试了以下方法,但仍然不能正常工作 1-创建了一个名为CoursePolicy的新策略,该策略具有以下功能 public function show(User $user, Course $course) { return $user->id === $course->user_id; } 2-将策略绑定到课程模型,如AuthServiceProvider.php中所述: protected $polic

我正试图限制授权用户仅访问他们所附的课程

我尝试了以下方法,但仍然不能正常工作

1-创建了一个名为CoursePolicy的新策略,该策略具有以下功能

public function show(User $user, Course $course)
    {
         return $user->id === $course->user_id;
    }
2-将策略绑定到课程模型,如AuthServiceProvider.php中所述:

protected $policies = [
    Course::class => CoursePolicy::class,
];
3-在我的课程中控制器控制器。。用于授权用户

public function show(Course $course)
    {

        $this->authorizeForUser(Auth::user(), 'show', [$course]);

    return $this->makeResponse('courses.show', compact('course'));
      
    }
Course.php

  public function users(){return $this->belongsToMany(User::class)->withTimestamps();}
User.php

    public function courses() {return $this->belongsToMany(Course::class)->withTimestamps();}
最终结果:

我[作为身份验证用户]。。从所有课程视图中阻止。。即使是我所依恋的人


我在这里遗漏了什么:(

如果有一个轴将课程与用户关联,为什么课程会有一个
用户id
字段?你是对的。我在课程表中没有用户id字段。那么好吧,兄弟,我如何更正?