Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich mit der Funktion „with()' von Laravel Eloquent selektiv Spalten aus verknüpften Tabellen abrufen?

Wie kann ich mit der Funktion „with()' von Laravel Eloquent selektiv Spalten aus verknüpften Tabellen abrufen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-20 05:03:17194Durchsuche

How Can I Selectively Retrieve Columns from Joined Tables Using Laravel Eloquent's `with()` Function?

Selektiver Spaltenabruf mit der Funktion „With()“ in Laravel Eloquent

Eine häufige Anforderung bei der Arbeit mit Eloquent-Modellen ist die Notwendigkeit einer Verknüpfung mehrere Tabellen und rufen Sie bestimmte Spalten aus den verbundenen Tabellen ab. Während die Funktion „with()“ eine bequeme Möglichkeit zur Angabe von Beziehungen bietet, ruft sie zunächst alle Spalten aus verwandten Tabellen ab.

Im bereitgestellten Beispiel besteht das Ziel darin, bestimmte Spalten (ID und Benutzername) aus der abzurufen „users“-Tabelle, während Sie „with()“ verwenden, um sie mit der „posts“-Tabelle zu verbinden. Die anfängliche Implementierung ruft alle Spalten aus beiden Tabellen ab, was zu den folgenden Abfragen führt:

select * from `posts`
select * from `users` where `users`.`id` in (<1>, <2>)

Um nur die gewünschten Spalten aus der verbundenen Tabelle abzurufen, kann eine Abschlussfunktion als zweiter Parameter an „with(“ übergeben werden. )“ wie folgt:

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

Diese Änderung führt die folgenden Abfragen aus:

select * from `posts`
select id, username from `users` where `users`.`id` in (<1>, <2>)

Dieser Ansatz stellt sicher, dass nur die angegebenen Spalten aus der Verknüpfung abgerufen werden Tabelle, während Sie die Funktion „with()“ zum Verknüpfen von Beziehungen verwenden.

Wichtiger Hinweis:

Es ist wichtig, den Primärschlüssel (in diesem Fall die ID) als einzufügen erster Parameter in $query->select() innerhalb der Abschlussfunktion. Dies ist notwendig, um die Ergebnisse korrekt aus der verknüpften Tabelle abzurufen.

Das obige ist der detaillierte Inhalt vonWie kann ich mit der Funktion „with()' von Laravel Eloquent selektiv Spalten aus verknüpften Tabellen abrufen?. 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