如何解决laravel 权限迁移不创建表
我有一个问题。 我使用 spaite 和 composer require 命令创建了权限。 在迁移目录中有 create_permission 文件存在。 所以,我迁移了但没有创建表。 当我使用 php artisan migrate:rollback 或 php artisan migrate:reset 回滚迁移时,我发现了这个错误。 问题是什么? 我用了laravel 8 和其他 Laravel 8 项目创建表但现在当前项目是相同的 Laravel 8 但不创建表并且在回滚时出错。 另外,我可以看到在当前项目中创建了personal_access_token表。 什么是原因? 请帮帮我。
解决方法
在将这个 composer 包(spatie 或 laravel-permission)安装到 laravel 时,您是否遵循以下步骤:
将 composer 包(laravel-permission 或 spatie)安装到 Laravel:
composer require spatie/laravel-permission
config/app.php
'providers' => [
....
Spatie\Permission\PermissionServiceProvider::class,],
我们还可以对 Spatie 包进行自定义更改,因此如果您还想更改,那么您可以触发 bellow 命令并在 config/permission.php 和迁移文件中获取配置文件。
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
现在您可以看到permission.php 文件和一个迁移。因此您可以使用以下命令运行迁移:
php artisan migrate
Spatie 包提供了它的内置中间件,这样我们就可以简单地使用它,如下所示: 因此,我们必须以这种方式在 Kernel.php 文件中添加中间件: app/Http/Kernel.php
....
protected $routeMiddleware = [
....
'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class,'role_or_permission' => \Spatie\Permission\Middlewares\RoleOrPermissionMiddleware::class,]
....
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。