Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Laravel 5.2 - Use a String as a Custom Primary Key for Eloquent Table wird 0

Dies wurde zur Upgrade-Dokumentation am 29. Dezember 2015 hinzugefügt , wenn Sie also schon einmal aktualisiert haben, haben Sie es wahrscheinlich verpasst.

Beim Abrufen eines Attributs aus dem Modell prüft es, ob diese Spalte als Ganzzahl, Zeichenfolge usw. umgewandelt werden soll.

Standardmäßig wird für automatisch inkrementierende Tabellen angenommen, dass die ID in dieser Methode eine ganze Zahl ist:

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

Die Lösung lautet also:

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