我正在使用Laravel 5.6和Spatie laravel-permission,我想修改 model_has_roles 所以它可以有一个名为 code 的额外字段 .

现在,我通过修改库通过下一个命令提供的迁移来做到这一点:

php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"

该库提供了一个有用的命令:

$user->assignRole($role);

这让我可以在一行代码中为用户分配一个角色 . 我的问题是,使用此命令会抛出错误,因为我不能将 code 字段留空 . 无论哪种方式,我不能做这样的事情:

$user->assignRole($role, ['code' => '0001'] );

因为它会说 0001 is not a role . 基本上,它假设我正在尝试为用户分配两个不同的角色: $role0001 而实际上我正在尝试分配一个角色: $role ,并为表 model_has_roles 添加了一个额外的参数 .

有没有办法实现这样的事情?我想也许我可以修改 assignRole 方法背后的逻辑,但我不知道如何扩展/编辑库方法 .