Heim >Backend-Entwicklung >PHP-Tutorial >Wie wähle ich bestimmte Spalten in der Eloquent-Funktion „with()' von Laravel aus?

Wie wähle ich bestimmte Spalten in der Eloquent-Funktion „with()' von Laravel aus?

Linda Hamilton
Linda HamiltonOriginal
2024-12-16 00:41:16925Durchsuche

How to Select Specific Columns in Laravel's Eloquent `with()` Function?

Bestimmte Spalten in der „With()“-Funktion von Eloquent angeben

Wenn Sie die „with()“-Funktion in Laravels Eloquent ORM nutzen, um verwandte Daten aus mehreren Tabellen abzurufen, Es kann vorkommen, dass Sie nur bestimmte Spalten aus der zweiten Tabelle benötigen. In diesem Artikel wird erläutert, wie Sie dies erreichen können, ohne auf den Abfrage-Generator zurückgreifen zu müssen.

Stellen Sie sich das Szenario vor, in dem Sie zwei Tabellen haben, „Benutzer“ und „Beitrag“, mit einer Eins-zu-viele-Beziehung zwischen ihnen. In Ihrem Benutzermodell definieren Sie eine „hasMany“-Beziehung mit dem Post-Modell:

public function post()
{
    return $this->hasmany('post');
}

Ähnlich richten Sie im Post-Modell eine „belongsTo“-Beziehung mit dem Benutzermodell ein:

public function user()
{
    return $this->belongsTo('user');
}

Wenn Sie jedoch die Funktion „with()“ verwenden, um diese beiden Tabellen zu verbinden, stellen Sie möglicherweise fest, dass standardmäßig alle Spalten aus der zweiten Tabelle ausgewählt werden. Angenommen, Sie möchten nur bestimmte Spalten wie „id“ und „username“ aus der Tabelle „User“ abrufen. Der folgende Codeausschnitt reicht nicht aus:

Post::query()
    ->with('user')
    ->get();

Um Ihr Ziel zu erreichen, können Sie eine Abschlussfunktion als zweiten Index des Arrays übergeben, das an die Funktion „with()“ übergeben wird:

Post::query()
    ->with(['user' => function ($query) {
        $query->select('id', 'username');
    }])
    ->get()

Mit diesem Abschluss können Sie angeben, welche Spalten aus der zweiten Tabelle abgerufen werden sollen. In diesem Fall werden nur die Spalten „id“ und „username“ aus der Tabelle „User“ ausgewählt.

Hinweis: Wie in der Antwort erwähnt, ist der Primärschlüssel („id " (in diesem Fall) muss der erste Parameter in der Methode $query->select() sein, um den ordnungsgemäßen Abruf der Ergebnisse sicherzustellen.

Das obige ist der detaillierte Inhalt vonWie wähle ich bestimmte Spalten in der Eloquent-Funktion „with()' von Laravel aus?. 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