PHP 7.3 Laravel 5.8 Laravel背包3.6
我正在尝试使用'role:admin'
文件中的中间件routes/backpack/permissionmanager.php
,将对Backpack的“用户”,“角色”和“权限”区域的访问权限限制为具有特定角色的一部分用户。
我已经确保我的用户帐户已被授予正确的角色。
我在'user'
中的config/backpack/permissionmanager.php
模型设置为App\User::class
,而我的User
模型具有并使用了文档中概述的必要特征。
我已将role
中间件放入我的应用程序,如下所示:
<?php
namespace App\Http\Middleware;
use Closure;
class RoleMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next, $role)
{
if (backpack_auth()->guest()) {
return redirect('login');
}
if (! backpack_user()->hasRole($role)) {
abort(403);
}
return $next($request);
}
}
但是,似乎这个中间件的backpack_user()
通过正确返回->name
属性知道我是谁,却绝对不知道我应该分配的角色或权限给我自己。我已经使用->getRoleNames()
方法进行了检查,它返回了一个空集合。
在数据库中,model_has_roles
表中为我的用户帐户和所需角色设置了正确的条目和ID。
但是,导航到myapp.dev/admin/user
会得到403 Forbidden
。
我认为这可能是一个错误,或者我一定看不到正确的东西...?