Heim >Datenbank >MySQL-Tutorial >Wie kann ich auf den Wert einer zusätzlichen Pivot-Spalte in Laravel-Viele-zu-Viele-Beziehungen zugreifen?

Wie kann ich auf den Wert einer zusätzlichen Pivot-Spalte in Laravel-Viele-zu-Viele-Beziehungen zugreifen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-10 02:19:02279Durchsuche

How Can I Access the Value of an Extra Pivot Column in Laravel Many-to-Many Relationships?

Den Wert einer Extra-Pivot-Spalte in Laravel abrufen

Beim Umgang mit Viele-zu-Viele-Beziehungen in Laravel bietet Eloquent eine praktische Möglichkeit dazu Greifen Sie über das automatisch zugewiesene Pivot-Attribut auf Pivot-Tabellenspalten zu. Dieses Beispiel zeigt, wie Sie den Preiswert eines bestimmten Modells und Problems einfach abrufen können.

Beziehungen definieren

class PhoneModel extends \Eloquent
{
    public function problems()
    {
        return $this->belongsToMany('RL\Phones\Entities\PhoneProblem')->withPivot('price');
    }
}

class PhoneProblem extends \Eloquent
{
    public function models()
    {
        return $this->belongsToMany('PhoneModel')->withPivot('price');
    }
}

Beachten Sie, dass withPivot('price') Die Klausel gibt die zusätzliche Pivot-Spalte an, die in die Beziehung einbezogen werden soll.

Abfragen des Preises

Um den Preis eines bestimmten Modells und Problems abzurufen, verwenden Sie die folgende Syntax:

$model->problems()->where('phone_problem', $problem->id)->first()->pivot->price

Diese Zeile führt die folgenden Aufgaben aus:

  • Ruft die mit dem $model verbundenen Probleme ab.
  • Filtert die Probleme nach dem angegebenen $problem-> ;id.
  • Gibt das erste Matching-Problem zurück.
  • Greift auf das Pivot-Attribut zu, um den Preiswert zu erhalten.

Dieser Ansatz bietet eine prägnante und Laravel-freundliche Möglichkeit um den zusätzlichen Pivot-Spaltenwert abzurufen, ohne dass komplexe Datenbankabfragen erforderlich sind.

Das obige ist der detaillierte Inhalt vonWie kann ich auf den Wert einer zusätzlichen Pivot-Spalte in Laravel-Viele-zu-Viele-Beziehungen zugreifen?. 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