Я работаю с 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
. По сути, предполагается, что я пытаюсь назначить пользователю ДВЕ разные роли: $role
и 0001
, в то время как на самом деле я пытаюсь назначить одну роль: $role
с дополнительным параметром для таблицы model_has_roles
.
Есть ли способ заархивировать такое? Я подумал, что, возможно, смогу изменить логику метода assignRole
, но я не знаю, как расширить / отредактировать методы библиотеки.
code
, но вы можете установить его как допускающий значение NULL и его значение по умолчаниюnull
. если это то, о чем вы спрашиваете, я напишу это как ответ - person MohamedSabil83   schedule 07.08.2018code
для моих отношений пользователь / роль при использовании методаassignRole
. Я не хочу, чтобыcode
былоnull
по умолчанию: я хочу назначить роль И установить дополнительное поле для таблицыmodel_has_roles
при этом. - person Enrique Bermúdez   schedule 07.08.2018assignRole
или каковы эти два шага? - person Enrique Bermúdez   schedule 07.08.2018