laravel 权限迁移不创建表
Posted
技术标签:
【中文标题】laravel 权限迁移不创建表【英文标题】:laravel permission migrate not create table 【发布时间】:2021-06-29 18:50:13 【问题描述】:我有一个问题。 我使用 spaite 和 composer require 命令创建了权限。 在迁移目录中存在 create_permission 文件。 所以,我迁移但没有创建表。 当我使用 php artisan migrate:rollback 或 php artisan migrate:reset 回滚迁移时,我发现了这个错误。 问题是什么? 我用过laravel 8 和其他 laravel 8 项目创建表但现在当前项目是相同的 laravel 8 但不创建表并且回滚时出错。 另外,我可以看到在当前项目中创建了personal_access_token 表。 什么是理由? 请帮帮我。
【问题讨论】:
你能发布你收到的错误信息吗? 【参考方案1】:在将这个 composer 包(spatie 或 laravel-permission)安装到 laravel 时,您是否按照以下步骤操作:
将 composer 包(laravel-permission 或 spatie)安装到 Laravel:
composer require spatie/laravel-permission
配置/app.php
'providers' => [
....
Spatie\Permission\PermissionServiceProvider::class,
],
我们还可以对 Spatie 包进行自定义更改,因此如果您也想更改,则可以触发以下命令并在 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,
]
....
【讨论】:
以上是关于laravel 权限迁移不创建表的主要内容,如果未能解决你的问题,请参考以下文章