Laravel 5.2 : Utiliser une chaîne comme clé primaire personnalisée pour la table Eloquent
Lorsque vous travaillez avec des modèles Eloquent dans Laravel 5.2, il est possible pour rencontrer un problème où une clé primaire personnalisée de type chaîne est convertie en 0 lors de la récupération de données à partir du base de données.
Énoncé du problème :
Un utilisateur a rencontré ce problème lors de l'utilisation d'un e-mail comme clé primaire pour une table, ce qui fait que la valeur de la clé primaire devient 0 après l'avoir récupérée à l'aide de la méthode Where.
Solution :
Pour résoudre ce problème, il est nécessaire d'informer Laravel que la clé primaire est pas un entier auto-incrémenté. Ceci peut être réalisé en définissant à la fois les propriétés $incrementing et $primaryKey dans la classe de modèle. De plus, définir la propriété $keyType sur « string » est recommandé dans les versions de Laravel 6.0.
Voici un exemple de mise à jour de la classe de modèle :
class UserVerification extends Model { protected $primaryKey = 'verification_token'; public $incrementing = false; protected $keyType = 'string'; }
En apportant ces modifications, Laravel sera conscient que la clé primaire est une chaîne et ne tentera pas de la convertir en entier, résolvant ainsi le problème où la clé primaire devient 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!