Problème de clé primaire personnalisée éloquente : "verification_token" devient 0
Lors de la tentative d'utilisation d'une chaîne comme clé primaire pour une table éloquente à l'aide Laravel 5.2, un problème inattendu survient lorsque la clé primaire, initialement définie sur un jeton de vérification, est convertie en 0 lors de la récupération des données de la table.
Ce comportement provient de la conversion par défaut des attributs au sein de la classe Modèle Laravel. Pour les tables avec des ID à incrémentation automatique, l'ID est automatiquement converti en nombre entier. Cependant, lorsque la clé primaire est une chaîne, ce processus de conversion entraîne l'interprétation de la clé comme zéro.
Pour résoudre ce problème, apportez les ajustements suivants au modèle Eloquent :
<code class="php">protected $primaryKey = 'verification_token';</code>
<code class="php">public $incrementing = false;</code>
<code class="php">protected $keyType = 'string';</code>
Ces modifications demandent à Laravel de traiter la clé primaire comme une chaîne plutôt que comme un entier, garantissant qu'elle conserve sa valeur d'origine lors de la récupération des attributs du modèle.
En implémentant ces modifications, vous pouvez utiliser avec succès une chaîne comme clé primaire personnalisée dans votre table Eloquent sans rencontrer le problème de la clé primaire devenant 0.
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!