sql >> Databáze >  >> RDS >> Mysql

Laravel 5.2 – Použít řetězec jako vlastní primární klíč pro výmluvnou tabulku se stane 0

Toto bylo přidáno do dokumentace k upgradu dne 29. prosince 2015 , takže pokud jste provedli upgrade dříve, pravděpodobně vám to uniklo.

Při načítání jakéhokoli atributu z modelu zkontroluje, zda by tento sloupec měl být přetypován jako celé číslo, řetězec atd.

Ve výchozím nastavení se u automaticky inkrementujících tabulek předpokládá, že ID je v této metodě celé číslo:

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

Takže řešení je:

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


  1. Úvod do databáze vysoké dostupnosti pro MySQL a MariaDB

  2. Proč jsou skalární funkce SQL Serveru pomalejší?

  3. Jak nainstalovat více serverů PostgreSQL na RedHat Linux

  4. Zpětné inženýrství datového modelu pomocí Oracle SQL Developer