Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Laravel 5.2 - Usar uma String como Chave Primária Personalizada para Eloquent Table torna-se 0


Isso foi adicionado à documentação de atualização em 29 de dezembro de 2015 , portanto, se você atualizou antes, provavelmente perdeu.

Ao buscar qualquer atributo do modelo ele verifica se aquela coluna deve ser convertida como um inteiro, string, etc.

Por padrão, para tabelas de incremento automático, o ID é considerado um número inteiro neste método:

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

Então a solução é:
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';
}