Heim > Datenbank > MySQL-Tutorial > Laravel 5.2 Eloquent: Warum wird mein String-Primärschlüssel zu 0?

Laravel 5.2 Eloquent: Warum wird mein String-Primärschlüssel zu 0?

DDD
Freigeben: 2024-12-04 20:16:13
Original
558 Leute haben es durchsucht

Laravel 5.2 Eloquent: Why is my String Primary Key becoming 0?

Laravel 5.2: Benutzerdefinierter Primärschlüssel in Eloquent verursacht unerwarteten Wert

Beim Versuch, eine Zeichenfolge als Primärschlüssel in einer Laravel 5.2 Eloquent-Tabelle zu verwenden, stoßen Benutzer möglicherweise auf einen Problem, bei dem der Primärschlüsselwert 0 wird. Dies ergibt sich aus dem Standardverhalten von Laravel, das den Primärschlüssel in einen umwandelt Ganzzahl.

Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:

  1. Geben Sie in der Eloquent-Modellklasse den Primärschlüssel mit $primaryKey an.
  2. Setzen Sie $incrementing auf false, was darauf hinweist, dass der Primärschlüssel nicht automatisch inkrementiert wird.
  3. Setzen Sie für Laravel 6.0 und höher $keyType auf „string“. um den Typ des Primärschlüssels explizit zu definieren.

Zum Beispiel:

class UserVerification extends Model
{
    protected $table = 'user_verification';
    protected $fillable =   [
                                'email',
                                'verification_token'
                            ];
    protected $primaryKey = 'verification_token';
    public $incrementing = false;
    protected $keyType = 'string'; // For Laravel 6.0+
}
Nach dem Login kopieren

Durch die Implementierung dieser Änderungen wird Laravel den Primärschlüssel korrekt als Zeichenfolge behandeln und so das Problem beheben des Primärschlüsselwerts 0 wird.

Das obige ist der detaillierte Inhalt vonLaravel 5.2 Eloquent: Warum wird mein String-Primärschlüssel zu 0?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage