Mysql
 sql >> Base de données >  >> RDS >> Mysql

Laravel 5.2 - Utiliser une chaîne comme clé primaire personnalisée pour Eloquent Table devient 0

Cela a été ajouté à la documentation de mise à niveau le 29 décembre 2015 , donc si vous avez mis à jour avant, vous l'avez probablement manqué.

Lors de la récupération d'un attribut du modèle, il vérifie si cette colonne doit être convertie en entier, chaîne, etc.

Par défaut, pour les tables auto-incrémentées, l'ID est supposé être un entier dans cette méthode :

https://github.com /laravel/framework/blob/5.2/src/Illuminate/Database/Eloquent/Model.php#L2790

Donc la solution est :

class UserVerification extends Model
{
    // if your key name is not 'id'
    // you can also set this to null if you don't have a primary key
    protected $primaryKey = 'your_key_name';

    public $incrementing = false;

    // In Laravel 6.0+ make sure to also set $keyType
    protected $keyType = 'string';
}