Mysql
 sql >> Database >  >> RDS >> Mysql

Laravel 5.2 - Usa una stringa come chiave primaria personalizzata per la tabella eloquente diventa 0

Questo è stato aggiunto alla documentazione di aggiornamento il 29 dicembre 2015 , quindi se hai eseguito l'upgrade prima, probabilmente te lo sei perso.

Quando recupera qualsiasi attributo dal modello, controlla se quella colonna deve essere lanciata come numero intero, stringa, ecc.

Per impostazione predefinita, per le tabelle a incremento automatico, si presume che l'ID sia un numero intero in questo metodo:

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

Quindi la soluzione è:

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';
}