Heim  >  Artikel  >  Backend-Entwicklung  >  Umgang mit Problemen bei der Konvertierung benutzerdefinierter String-Primärschlüssel in Laravel 5.2

Umgang mit Problemen bei der Konvertierung benutzerdefinierter String-Primärschlüssel in Laravel 5.2

Linda Hamilton
Linda HamiltonOriginal
2024-10-19 16:53:30942Durchsuche

How to Handle Custom String Primary Key Conversion Issue in Laravel 5.2

Laravel 5.2 – Benutzerdefinierter Primärschlüssel als String: Auflösen der „0“-Konvertierung

Verwenden eines Strings als Primärschlüssel für eine eloquente Tabelle kann zu unerwarteten Konvertierungsproblemen führen. Dieser Artikel befasst sich mit dem Problem, dass beim Abrufen des Primärschlüssels der Wert „0“ auftritt.

Problemstellung:

Beim Versuch, E-Mail als Primärschlüssel zu verwenden, Eloquent würde den Primärschlüssel als „0“ zurückgeben, wenn die Tabelle mit „where“ und dem Primärschlüssel als Argument abgefragt wird. Dies wirkte sich auf den Abruf anderer Attribute aus dem Modell aus.

Lösung:

Um dieses Konvertierungsproblem zu beheben, müssen zwei Eigenschaften im Eloquent-Modell konfiguriert werden:

  1. Inkrementierung: Setzen Sie dies auf „false“, um anzugeben, dass der Primärschlüssel nicht automatisch inkrementiert (wie es für Zeichenfolgenschlüssel typisch ist).
  2. keyType (nur Laravel 6.0):Setzen Sie dies auf „string“, um explizit anzugeben, dass der Primärschlüssel ein String ist.

Hier ist das aktualisierte Eloquent-Modell:

<code class="php">class UserVerification extends Model
{
    protected $primaryKey = 'verification_token';
    protected $incrementing = false;
    protected $keyType = 'string';
    // Other model definitions...
}</code>

Durch die Konfiguration dieser Eigenschaften verarbeitet Laravel den String-Primärschlüssel nun korrekt und vermeidet die Konvertierung in eine Ganzzahl, wodurch das Problem der „0“-Konvertierung behoben wird.

Das obige ist der detaillierte Inhalt vonUmgang mit Problemen bei der Konvertierung benutzerdefinierter String-Primärschlüssel in Laravel 5.2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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