Laravel授权策略在显示页面上不起作用

Laravel授权策略在显示页面上不起作用,laravel,Laravel,我有一个laravel应用程序使用策略分配角色和权限,我似乎无法访问显示页面,我不确定我做错了什么? 如果我将return设置为true,它仍然显示403错误,所以我不确定我在这里哪里出错了。索引页可访问,但显示页不可访问 用户策略 public function viewAny(User $user) { if ($user->isSuperAdmin() || $user->hasPermissionTo(44, 'web')) { return true

我有一个laravel应用程序使用策略分配角色和权限,我似乎无法访问显示页面,我不确定我做错了什么? 如果我将return设置为true,它仍然显示403错误,所以我不确定我在这里哪里出错了。索引页可访问,但显示页不可访问

用户策略

public function viewAny(User $user)
{
    if ($user->isSuperAdmin() || $user->hasPermissionTo(44, 'web')) {
        return true;
    }
    return false;
}

public function view(User $user, User $model)
{
    if ($user->isSuperAdmin() || $user->hasPermissionTo(44, 'web')) {
        return true;
    }
    return false;
}
用户控制器

public function __construct()
{
    $this->authorizeResource(User::class, 'user');

}

public function index()
{
    $page_title = 'Users';
    $page_description = 'User Profiles';
    $users = User::all();

    return view('pages.users.users.index', compact('page_title', 'page_description', 'users'));
}

public function create()
{
    //
}

public function store(Request $request)
{
    //
}

public function show($id)
{
    $user = User::findOrFail($id);
    $user_roles = $user->getRoleNames()->toArray();


    return view('pages.users.users.show', compact('user', 'user_roles'));
}
基于数据和文档

您应该运行php artisan make:policy UserPolicy--model=User。这允许策略在模型中导航

当您使用
authorizeResource()
函数时,您应该在中间件中实现您的条件,如:

//用于索引
路由::get('/users',[UserController::class,'index'])->中间件('can:viewAny,user');
//查看
路由::get('/users/{user}',[UserController::class,'view'])->中间件('can:view,user');

或者您也可以对控制器上的
视图
索引
使用一个策略。

您是否在控制器上安装了中间件,如果您应该登录以查看页面,那么我在控制器上有中间件,并且已登录。您应该将
User::class
作为经过身份验证的用户的实例,如
Auth::User()