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
Freigeben: 2024-12-20 05:03:17
Original
309 Leute haben es durchsucht

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>)
Nach dem Login kopieren

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()
Nach dem Login kopieren

Diese Änderung führt die folgenden Abfragen aus:

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

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!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage