Maison >développement back-end >tutoriel php >Comment corriger les erreurs de longueur de clé unique dans les migrations Laravel ?
Problème de longueur de clé unique dans les migrations Laravel
Dans Laravel, lors de la création de clés uniques pour les colonnes de table, il est possible de rencontrer une erreur indiquant que la clé spécifiée est trop longue. Ce problème survient lorsque la longueur de la colonne définie pour la clé unique dépasse la longueur maximale autorisée.
Dépannage du problème
La migration fournie spécifie une contrainte unique sur le Colonne « email » d’une longueur de 320 caractères. Cependant, par défaut, la colonne « email » dans Laravel est définie comme une chaîne avec une longueur par défaut de 255. Cette longueur par défaut devrait être suffisante pour la plupart des adresses e-mail.
Pour résoudre le problème, pensez à réduire la longueur de la colonne 'email' dans la migration vers une valeur raisonnable, telle que 250 caractères :
$table->string('email', 250);
Alternativement, vous pouvez spécifier explicitement la longueur de la clé unique comme deuxième paramètre de 'unique() ' :
$table->unique('email', 'users_email_uniq', 320);
Laravel 5.4 et au-delà
Pour les versions Laravel 5.4 et ultérieures, une solution plus complète est disponible. Dans le fichier « AppServiceProvider.php », ajoutez le code suivant à la méthode « boot() » :
use Illuminate\Database\Schema\Builder; public function boot() { Builder::defaultStringLength(191); }
La définition de la longueur de chaîne par défaut sur 191 garantit que les colonnes créées à l'aide de la méthode « string() » aura une longueur maximale de 191 caractères, éliminant ainsi la probabilité de rencontrer le problème de longueur de clé unique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!