Maison > base de données > tutoriel mysql > le corps du texte

Laravel 5.2 : Pourquoi ma clé primaire de chaîne est-elle convertie en 0 ?

Linda Hamilton
Libérer: 2024-11-26 01:09:10
original
111 Les gens l'ont consulté

Laravel 5.2: Why is my String Primary Key Converting to 0?

Laravel 5.2 : problème de conversion de clé primaire personnalisée

Lors de l'utilisation d'une chaîne comme clé primaire personnalisée dans l'ORM éloquent de Laravel 5.2, vous peut rencontrer un problème où la valeur de la clé est convertie en 0 lors de sa récupération à partir du base de données.

Explication :

Laravel convertit automatiquement les valeurs d'attribut pour qu'elles correspondent aux types de colonnes de la base de données. Par défaut, les clés primaires auto-incrémentées sont supposées être des nombres entiers. Cependant, dans ce cas, vous utilisez une chaîne comme clé primaire, ce qui entraîne une conversion incorrecte de la valeur.

Solution :

Pour résoudre ce problème, vous devez spécifier explicitement que la clé primaire est une chaîne et qu'elle ne doit pas être automatiquement incrémentée. Pour ce faire, ajoutez le code suivant à votre modèle :

protected $primaryKey = 'your_key_name';
public $incrementing = false;
Copier après la connexion

Assurez-vous de remplacer « your_key_name » par le nom réel de votre colonne de clé primaire.

Explication supplémentaire :

Dans Laravel 6.0 et versions ultérieures, vous devez également définir la propriété $keyType sur 'string' :

protected $keyType = 'string';
Copier après la connexion

Cela spécifie explicitement que la clé primaire est une chaîne et empêche toute conversion de type potentielle.

En implémentant cette solution, vous pourrez utiliser des chaînes comme chaînes personnalisées clés primaires dans vos modèles Laravel Eloquent sans rencontrer de problème de conversion.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal