没有名为“admin”的角色。 laravel
There is no role named `admin`. laravel
我使用这个包:
代码:
$user=User::find(2);
$user->assignRole('admin');
当我将管理员角色分配给用户时,我正在处理这个错误
There is no role named admin
.Spatie\Permission\Exceptions\RoleDoesNotExist
这是我在 auth.php 中的默认守卫:
<?php
return [
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
这是我的角色 table :
这是我的role_has_permissiontable
这是我的许可 table :
只需将此受保护 属性 添加到您的用户模型(或您用于分配权限和角色的任何模型)。
protected $guard_name = 'api';
将此添加到您的用户模型
use Spatie\Permission\Traits\HasRoles;
并在用户模型中 class
use HasRoles;
这是一个reference
将以下内容之一添加到您的 User
模型中:
public $guard_name = 'api';
或者:
public function guardName()
{
return 'api';
}
按照惯例,最好在配置文件中进行可配置的操作。
你代码的问题是你的守卫排列顺序,重新排列如下。
<?php
return [
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],
'guards' => [
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'web' => [
'driver' => 'session',
'provider' => 'users',
],
],
...
完成后,您无需将 protected $guard_name = 'api';
添加到 User 模型,确保 运行 php artisan config:clear
这对我有用:
$role = Role::create(['guard_name' => 'admin', 'name' => 'manager']);
我使用这个包:
代码:
$user=User::find(2);
$user->assignRole('admin');
当我将管理员角色分配给用户时,我正在处理这个错误
There is no role named
admin
.Spatie\Permission\Exceptions\RoleDoesNotExist
这是我在 auth.php 中的默认守卫:
<?php
return [
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
这是我的角色 table :
这是我的role_has_permissiontable
这是我的许可 table :
只需将此受保护 属性 添加到您的用户模型(或您用于分配权限和角色的任何模型)。
protected $guard_name = 'api';
将此添加到您的用户模型
use Spatie\Permission\Traits\HasRoles;
并在用户模型中 class
use HasRoles;
这是一个reference
将以下内容之一添加到您的 User
模型中:
public $guard_name = 'api';
或者:
public function guardName()
{
return 'api';
}
按照惯例,最好在配置文件中进行可配置的操作。
你代码的问题是你的守卫排列顺序,重新排列如下。
<?php
return [
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],
'guards' => [
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'web' => [
'driver' => 'session',
'provider' => 'users',
],
],
...
完成后,您无需将 protected $guard_name = 'api';
添加到 User 模型,确保 运行 php artisan config:clear
这对我有用:
$role = Role::create(['guard_name' => 'admin', 'name' => 'manager']);