Php Laravel 8返回403未经授权的访问
我正在使用Laravel8,我有一个名为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: &
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()
topublic function edit(Request$Request,User$User)
method,并打印空屏幕!你能告诉我怎么做吗?@POOYAA你能告诉我你是怎么实现auth的吗?这是一节课吗?是否在web组中启用了会话中间件?可能是会话中间件未启用。您正在上一个控制器上进行授权,并且它不会像在下一个请求中一样在应用程序中持久化,它不会显示。您能执行这个命令并告诉我用户是否在编辑方法中进入dd($request->user())吗?我刚刚使用kernel.php中的默认auth
中间件将用户重定向回登录页面,如果用户未登录,我添加了$request->user()
topublic 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
}