Heim >Backend-Entwicklung >PHP-Tutorial >Wie behebt man eindeutige Schlüssellängenfehler bei Laravel-Migrationen?

Wie behebt man eindeutige Schlüssellängenfehler bei Laravel-Migrationen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-31 02:32:02922Durchsuche

How to Fix Unique Key Length Errors in Laravel Migrations?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn