给定的角色或权限应该使用守卫 ` ` 而不是 `web`。-Laravel

8 浏览
0 Comments

给定的角色或权限应该使用守卫 ` ` 而不是 `web`。-Laravel

我正在使用一个名为 spatie 的包来管理用户角色和权限。在创建和分配角色给用户时,我遇到了以下错误:

给定的角色或权限应该使用守卫`guard`而不是web

以下是我在控制器中保存数据的方法:

这个问题可能是由于什么原因导致的?

控制器

$user = new User;
$user->firstname = Input::get('firstname');
$user->lastname = Input::get('lastname');
$user->login = Input::get('login');
$user->desc = Input::get('desc');
$user->email = Input::get('email');
// $user->group = Input::get('group');
$user->password = Hash::make(Input::get('password'));
$user->save();
$user->assignRole(Input::get('roles'));

config/auth.php

 [
        'guard' => 'web',
        'passwords' => 'users',
    ],
    /*
    |--------------------------------------------------------------------------
    | 认证守卫
    |--------------------------------------------------------------------------
    |
    | 接下来,您可以为您的应用程序定义每个认证守卫。
    | 当然,已经为您定义了一个很好的默认配置,
    | 该配置使用会话存储和Eloquent用户提供程序。
    |
    | 所有的认证驱动程序都有一个用户提供程序。这定义了
    | 用户实际上是如何从数据库或其他存储中检索出来的
    | 由此应用程序用于保存用户数据的机制。
    |
    | 支持的: “session”,“token”
    |
    */
    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],
    ],
    /*
    |--------------------------------------------------------------------------
    | 用户提供者
    |--------------------------------------------------------------------------
    |
    | 所有的认证驱动程序都有一个用户提供程序。这定义了
    | 用户实际上是如何从数据库或其他存储中检索出来的
    | 由此应用程序用于保存用户数据的机制。
    |
    | 如果您有多个用户表或模型,您可以配置多个
    | 代表每个模型/表的源。然后可以将这些源分配给您定义的任何额外的认证守卫。
    |
    | 支持的: “database”,“eloquent”
    |
    */
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\models\User::class,
        ],
        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],
    /*
    |--------------------------------------------------------------------------
    | 重置密码
    |--------------------------------------------------------------------------
    |
    | 如果您的应用程序中有多个用户表或模型,并且您希望根据特定用户类型具有不同的密码重置设置,则可以指定多个密码重置配置。
    | 过期时间是重置令牌应被视为有效的分钟数。这个安全特性使令牌的寿命较短,以便猜测的时间更少。您可以根据需要更改此设置。
    |
    */
    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
        ],
    ],
];

0