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