sql >> Base de Datos >  >> RDS >> Mysql

Laravel 5.2:usar una cadena como clave principal personalizada para la tabla elocuente se convierte en 0

Esto fue añadido a la documentación de actualización el 29 de diciembre de 2015 , así que si actualizaste antes, probablemente te lo perdiste.

Al obtener cualquier atributo del modelo, comprueba si esa columna debe convertirse en un número entero, una cadena, etc.

De forma predeterminada, para las tablas de incremento automático, se supone que el ID es un número entero en este método:

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

Entonces la solución es:

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