Heim >Backend-Entwicklung >PHP-Tutorial >Wie behebt man eindeutige Schlüssellängenfehler bei Laravel-Migrationen?
Problem mit der Länge eindeutiger Schlüssel bei Laravel-Migrationen
In Laravel kann beim Erstellen eindeutiger Schlüssel für Tabellenspalten ein Fehler auftreten, der darauf hinweist Der angegebene Schlüssel ist zu lang. Dieses Problem tritt auf, wenn die Länge der für den eindeutigen Schlüssel definierten Spalte die zulässige maximale Länge überschreitet.
Fehlerbehebung für das Problem
Die bereitgestellte Migration gibt eine eindeutige Einschränkung für an Spalte „E-Mail“ mit einer Länge von 320 Zeichen. Standardmäßig ist die Spalte „E-Mail“ in Laravel jedoch als Zeichenfolge mit einer Standardlänge von 255 definiert. Diese Standardlänge sollte für die meisten E-Mail-Adressen ausreichend sein.
Um das Problem zu beheben, sollten Sie eine Reduzierung der Länge in Betracht ziehen der Spalte „E-Mail“ bei der Migration auf einen sinnvollen Wert, z. B. 250 Zeichen:
$table->string('email', 250);
Alternativ können Sie die Länge des eindeutigen Schlüssels explizit als zweiten Parameter für „unique()“ angeben. ' Methode:
$table->unique('email', 'users_email_uniq', 320);
Laravel 5.4 und höher
Für Laravel-Versionen 5.4 und höher ist eine umfassendere Lösung verfügbar. Fügen Sie in der Datei „AppServiceProvider.php“ den folgenden Code zur Methode „boot()“ hinzu:
use Illuminate\Database\Schema\Builder; public function boot() { Builder::defaultStringLength(191); }
Durch Festlegen der Standardzeichenfolgenlänge auf 191 wird sichergestellt, dass mit der Methode „string()“ erstellte Spalten erstellt werden hat eine maximale Länge von 191 Zeichen, wodurch die Wahrscheinlichkeit des Problems der eindeutigen Schlüssellänge ausgeschlossen ist.
Das obige ist der detaillierte Inhalt vonWie behebt man eindeutige Schlüssellängenfehler bei Laravel-Migrationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!