给定的角色或权限应该使用守卫 ` ` 而不是 `web`。-Laravel
给定的角色或权限应该使用守卫 ` ` 而不是 `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, ], ], ];