【发布时间】:2021-04-20 07:26:30
【问题描述】:
我有一个使用策略分配角色和权限的 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'));
}
【问题讨论】:
-
你有没有在你的控制器上放任何中间件,如果你应该登录查看页面
-
我在控制器上有中间件并已登录
-
也许你应该把
User::class是经过身份验证的用户的实例,比如Auth::user()
标签: laravel