by Guest » 06 Jan 2025, 21:36
Ich stoße auf dieses Problem:
"SQLSTATE[23000]: Verletzung der Integritätsbeschränkung: 1062 Doppelter Eintrag '0' für Schlüssel 'PRIMARY' ( SQL: Werte (abcd#1234, 1234, web, 2025-01-06) in Rollen (Name, Geschäfts-IDs, Schutzname, aktualisiertes_at, erstelltes_at) einfügen 13:29:42, 2025-01-06 13:29:42))"
Ich verwende die Spatie-Bibliothek, um Rollen und Begegnungen zu erstellen das obige Problem. Wenn ich den Fehler protokolliere, wird angezeigt, dass die ID 0 ist und dupliziert wird. Ich habe versucht, DB::beginTransaction(); zu verwenden, aber es ist nicht effektiv. Ich suche nach Anleitungen, wie ich damit umgehen soll.
Code: Select all
DB::beginTransaction();
$this->businessUtil->newBusinessDefaultResources($business->ids, $user->id);
DB::commit();
Code: Select all
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);
Das Problem scheint mit der automatischen Inkrementierung des Primärschlüssels in Ihrer Rollentabelle zusammenzuhängen. Der Fehler deutet darauf hin, dass mehrere Datensätze versuchen, die ID 0 zu verwenden, was gegen die Primärschlüsseleinschränkung verstößt.
Ich habe versucht, DB::beginTransaction(); zu verwenden, aber das ist nicht der Fall effektiv
Ich stoße auf dieses Problem:
"SQLSTATE[23000]: Verletzung der Integritätsbeschränkung: 1062 Doppelter Eintrag '0' für Schlüssel 'PRIMARY' ( SQL: Werte (abcd#1234, 1234, web, 2025-01-06) in Rollen (Name, Geschäfts-IDs, Schutzname, aktualisiertes_at, erstelltes_at) einfügen 13:29:42, 2025-01-06 13:29:42))"
Ich verwende die Spatie-Bibliothek, um Rollen und Begegnungen zu erstellen das obige Problem. Wenn ich den Fehler protokolliere, wird angezeigt, dass die ID 0 ist und dupliziert wird. Ich habe versucht, DB::beginTransaction(); zu verwenden, aber es ist nicht effektiv. Ich suche nach Anleitungen, wie ich damit umgehen soll.
[code]DB::beginTransaction();
$this->businessUtil->newBusinessDefaultResources($business->ids, $user->id);
DB::commit();
[/code]
[code]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);
[/code]
Das Problem scheint mit der automatischen Inkrementierung des Primärschlüssels in Ihrer Rollentabelle zusammenzuhängen. Der Fehler deutet darauf hin, dass mehrere Datensätze versuchen, die ID 0 zu verwenden, was gegen die Primärschlüsseleinschränkung verstößt.
Ich habe versucht, DB::beginTransaction(); zu verwenden, aber das ist nicht der Fall effektiv