Php Laravel 8返回403未经授权的访问

Php Laravel 8返回403未经授权的访问,php,laravel,acl,laravel-8,Php,Laravel,Acl,Laravel 8,我正在使用Laravel8,我有一个名为Profile的资源控制器。在这个控制器中,用户可以编辑他们的用户配置文件信息 所以在edit方法中,我将以下内容: public function edit(User $user) { $this->authorize('edit-user', $user); return view('editprofile', compact('user')); } 用户可以通过此按钮访问editprofileblade: &

我正在使用Laravel8,我有一个名为
Profile
的资源控制器。在这个控制器中,用户可以编辑他们的用户配置文件信息

所以在
edit
方法中,我将以下内容:

public function edit(User $user)
{
    $this->authorize('edit-user', $user);
        
    return view('editprofile', compact('user'));
}
用户可以通过此按钮访问
editprofile
blade:

<a href="{{ route('profile.edit' , ['profile' => Auth::user()->id]) }}" class="btn">Edit Profile</a>
UDPATE 1:


请更改以下内容

  • 路由参数名称为“profile” 因此,控制器方法参数必须是相同的“$profile”

请更改以下内容

  • 路由参数名称为“profile” 因此,控制器方法参数必须是相同的“$profile”

你能告诉我怎么做吗?@POOYAA你能告诉我你是怎么实现auth的吗?这是一节课吗?是否在web组中启用了会话中间件?可能是会话中间件未启用。您正在上一个控制器上进行授权,并且它不会像在下一个请求中一样在应用程序中持久化,它不会显示。您能执行这个命令并告诉我用户是否在编辑方法中进入dd($request->user())吗?我刚刚使用kernel.php中的默认
auth
中间件将用户重定向回登录页面,如果用户未登录,我添加了
$request->user()
to
public function edit(Request$Request,User$User)
method,并打印空屏幕!你能告诉我怎么做吗?@POOYAA你能告诉我你是怎么实现auth的吗?这是一节课吗?是否在web组中启用了会话中间件?可能是会话中间件未启用。您正在上一个控制器上进行授权,并且它不会像在下一个请求中一样在应用程序中持久化,它不会显示。您能执行这个命令并告诉我用户是否在编辑方法中进入dd($request->user())吗?我刚刚使用kernel.php中的默认
auth
中间件将用户重定向回登录页面,如果用户未登录,我添加了
$request->user()
to
public function edit(Request$Request,User$User)
method,并打印空屏幕<代码>$this->授权('edit-user',$user)这不起作用,我想你可以添加你的策略代码吗?你可以试试这个
用户$profile
$this->授权('edit-User',$User)这不起作用,我想你可以添加你的政策代码吗?你可以试试这个
用户$profile
Route::middleware('auth')->group(function() {
    Route::resource('profile' , ProfileController::class);
});

public function edit (Request $request, User $profile) {
    Gate::allows('edit-user', $profile);

    // do the logic
}