Я использую библиотеку Spatie для создания ролей и столкнулся с вышеуказанной проблемой. Когда я регистрирую ошибку, она показывает, что идентификатор равен 0 и он дублируется. Я пробовал использовать DB::beginTransaction();, но это неэффективно. Мне нужен совет, как с этим справиться.
Код: Выделить всё
DB::beginTransaction();
$this->businessUtil->newBusinessDefaultResources($business->ids, $user->id);
DB::commit();
Код: Выделить всё
use Spatie\Permission\Models\Role;
public function newBusinessDefaultResources($business_ids, $user_id, $business_category_id=null)
{
$role = Role::create([ 'name' => 'abcd#' . $business_ids,
'business_id' => $business_ids,
'guard_name' => 'web', 'is_default' => 1
]);
$user->assignRole($role->name);
//Create Cashier role for a new business
$c_role = Role::create([ 'name' => 'abcde#' . $business_ids,
'business_ids' => $business_ids,
'guard_name' => 'web'
]);
//Create Tutor role for a new business
$p_role = Role::create(['name' => 'abcdef#' . $business_ids,
'business_ids' => $business_ids,
'guard_name' => 'web',
'is_default' => 1
]);
dd(1);
Я пробовал использовать DB::beginTransaction();, но это не так. эффективен
Подробнее здесь: https://stackoverflow.com/questions/793 ... r-key-prim
Мобильная версия