Warum erhalte ich bei Laravel-Migrationen die Fehlermeldung „Eindeutiger Schlüssel ist zu lang'?

Barbara Streisand
Freigeben: 2024-10-31 04:39:30
Original
860 Leute haben es durchsucht

Why Am I Getting a

Fehlerbehebung bei Laravel-Migrationsfehlern: „Eindeutiger Schlüssel ist zu lang“

Beim Versuch, eine Benutzertabelle in Laravel zu migrieren, stoßen Sie möglicherweise auf das Problem Fehler: „[IlluminateDatabaseQueryException] ... Der angegebene Schlüssel war zu lang; die maximale Schlüssellänge beträgt 767 Byte.“ Dieser Fehler tritt auf, wenn der von Ihnen angegebene eindeutige Schlüssel die maximal zulässige Länge überschreitet.

Verstehen des Problems

Die Standardzeichenfolgenlänge in Laravel für Spalten wie E-Mail beträgt 255 Charaktere. Wenn Sie versuchen, einen eindeutigen Schlüssel für eine Spalte mit einer längeren Zeichenfolge zu erstellen (in diesem Fall 320 Zeichen für die E-Mail-Spalte), schlägt die Migration fehl.

Behebung des Fehlers

  1. Reduzieren Sie die Länge der E-Mail-Zeichenfolge:Geben Sie eine kürzere Länge für die E-Mail-Spalte in Ihrer Migration an:
<code class="php">$table->string('email', 250);</code>
Nach dem Login kopieren
  1. Verwenden Standard-Stringlänge:Verwenden Sie die Standard-Stringlänge für die E-Mail-Spalte:
<code class="php">$table->string('email');</code>
Nach dem Login kopieren
  1. Standard-Stringlänge in AppServiceProvider festlegen (Laravel 5.4 und höher):

Legen Sie in der Datei AppServiceProvider.php in der Startmethode die Standardzeichenfolgenlänge für alle Migrationen fest:

<code class="php">use Illuminate\Database\Schema\Builder;

public function boot()
{
    Builder::defaultStringLength(191);
}</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum erhalte ich bei Laravel-Migrationen die Fehlermeldung „Eindeutiger Schlüssel ist zu lang'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!