Я использовал библиотеки ролей и разрешений Entrust для Laravel и Lumen.Хотя у меня была причина использовать его не так, как предполагалось, из-за моего уникального случая.Мне нужно было иметь несколько экземпляров пользователя с одинаковой ролью, дифференцированным определенным внешним ключом.
Предположим, я хотел, чтобы пользователь имел одинаковую роль для разных заданий или разные роли для разных заданий, поэтому я добавил job_id в таблицу role_users
, чтобы помочь мне отфильтровать роли, которые выполняет пользователь для определенного задания...
Это просто означает, что пользователь может быть администратором для job1 и администратором для job2 .. Это создавало проблему, потому что поручили некоторым как сделать первичные ключи role_id и user_id в таблице role_users ..
Сначала я не думал, что это возможно, плюс я не понимаю, почему .. Это также означает, что у меня не может быть нескольких экземпляров одного и того же role_id и user_id, которые я хотел.Я провел небольшое исследование и выяснил, что могу сбросить первичный ключ, используя метод $table->dropPrimary()
.
Я сделал это в своем методе up()
, хотя действие необходимо повторить в моем методе down.Я не могу создать первичный ключ там, потому что, если несколько экземпляров уже существуют, это приведет к фатальному исключению.
По сути, мне нужен способ отбросить первичный ключ при условии, что он существует, поэтому мне не нужно заново создавать его в методе down.