


Tutorial zur Overlay-Chain-Aufrufmethode des Laravel Query Builder
Dieser Artikel stellt Ihnen hauptsächlich die relevanten Informationen zum Aufruf der Query Builder-Overlay-Kette anhand von Beispielcode vor. Ich hoffe, dass dies der Fall ist Hilfe an alle.
Einführung in den Abfrage-Builder
Der Laravel-Abfrage-Builder bietet eine praktische und flüssige Schnittstelle zum Einrichten und Ausführen der Datenbanksuchsyntax.
Verwendung der PDO-Parameterbindung, um Anwendungen vor SQL-Injection zu schützen. Daher müssen die eingehenden Parameter nicht mit Sonderzeichen
maskiert werden, was grundsätzlich alle Datenbankoperationen erfüllen und auf allen unterstützten Datenbanksystemen ausgeführt werden kann
Einführung
Heute Ich möchte Ihnen einen kleinen Trick des Laravel-Abfragekonstruktors vorstellen. Er wird in den offiziellen Dokumentbeispielen nicht ausführlich erwähnt und ist möglicherweise keine High-End-Fähigkeit kann einen Blick darauf werfen.
Im Geschäftscode werden Abfragen häufig auf der Grundlage verschiedener Bedingungen durchgeführt. Als einfaches Beispiel möchten wir nun die Benutzerliste abfragen, die in umgekehrter chronologischer Reihenfolge angeordnet ist, und Status und Typ können als qualifizierende Bedingungen verwendet werden.
Zuerst habe ich es so geschrieben
if($status && $type) { $users = User::where('status', $status)->where('type', $type)->latest()->get(); } else if ($status) { $users = User::where('status', $status)->latest()->get(); } else if ($type) { $users = User::where('status', $type)->latest()->get(); } else { $users = User::latest()->get(); }
Dieser Code ist wirklich hässlich, viel öffentlich Code wie ->latest()->get(), viermal geschrieben. Wenn das Produkt sagt, dass wir es heute in der richtigen Reihenfolge sortieren möchten, müssen Sie vier Stellen ändern. Obwohl es mit Hilfe eines Editors schnell geändert werden kann, müssen Sie wissen, dass dies nur das einfachste Beispiel ist.
Nach dem Lesen des Dokuments gibt es eine Methode zur bedingten Beurteilung. Eine Reihe von Abschlüssen sind nicht ideal. Ich war fest davon überzeugt, dass es einen eleganteren Weg geben muss, es zu schreiben, also suchte ich nach Stackoverflow, und tatsächlich gab mir der allmächtige Waiguoren die Antwort.
Verbessertes Schreiben:
$query = User::query(); // 如果用DB: $query = DB::table('user'); if ($status) { $query->where('status', $status); } if ($type) { $query->where('type', $type); } $users = $query->latest()->get();
Verwenden Sie eine Variable, um die Abfrage-Builder-Instanz zu speichern, und fügen Sie sie dann hinzu dazu Überlagern Sie die Einschränkungen und erhalten Sie schließlich den Satz. Der öffentliche Teil steht am Anfang und am Ende und die Struktur ist klar. Handelt es sich um eine Entscheidung?
Und wir können $query auch als Parameter an eine Methode oder Funktion übergeben und so gemeinsame Logik zusammenfassen, um mehrere Aufrufe zu ermöglichen:
function foo($query) { $query->with(['girl', 'gay']) ->latest() ->get(); } $query = User::query(); $users = foo($query);
Bei dieser Schreibweise gibt es einen Vorbehalt: Sobald Sie where und andere Einschränkungsmethoden für $query aufrufen, muss die Abfrage im Voraus geändert werden.
Zum Beispiel möchten wir Benutzer vom Typ 1 und 2 gleichzeitig bekommen
$query_1 = User::query(); $query_2 = clone $query_1; $users_1 = $query_1->where('type', 1)->latest()->get(); $users_2 = $query_2->where('type', 2)->latest()->get(); // 错误 $users_2 = $query_1->where('type', 1)->latest()->get(); // 这样写得到得是type = 1 and $type = 2
laravel Obwohl es in der Dokumentation kein solches Beispiel gibt, wird es erwähnt:
Sie können die Tabellenmethode der DB-Fassade verwenden, um die Abfrage zu starten. Die Tabellenmethode gibt eine Abfrage-Builder-Instanz für die Abfragetabelle zurück, sodass Sie beim Abfragen weitere Einschränkungen verketten und die get-Methode verwenden können, um das Endergebnis zu erhalten.
Verwandte Empfehlungen:
7 empfohlene Artikel über Abfragekonstruktoren
Laravel-Lernen – Datenbankoperationen und Abfragekonstruktion Beispielcode-Sharing des Builders
Wie der Abfragekonstruktor von ThinkPHP5 funktioniert
Das obige ist der detaillierte Inhalt vonTutorial zur Overlay-Chain-Aufrufmethode des Laravel Query Builder. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die neuesten Versionen von Laravel 9 und CodeIgniter 4 bieten aktualisierte Funktionen und Verbesserungen. Laravel9 übernimmt die MVC-Architektur und bietet Funktionen wie Datenbankmigration, Authentifizierung und Template-Engine. CodeIgniter4 nutzt die HMVC-Architektur, um Routing, ORM und Caching bereitzustellen. In Bezug auf die Leistung sorgen das auf Dienstanbietern basierende Designmuster von Laravel9 und das leichte Framework von CodeIgniter4 für eine hervorragende Leistung. In praktischen Anwendungen eignet sich Laravel9 für komplexe Projekte, die Flexibilität und leistungsstarke Funktionen erfordern, während CodeIgniter4 für schnelle Entwicklung und kleine Anwendungen geeignet ist.

Vergleichen Sie die Datenverarbeitungsfunktionen von Laravel und CodeIgniter: ORM: Laravel verwendet EloquentORM, das eine relationale Klassen-Objekt-Zuordnung bereitstellt, während CodeIgniter ActiveRecord verwendet, um das Datenbankmodell als Unterklasse von PHP-Klassen darzustellen. Abfrage-Builder: Laravel verfügt über eine flexible verkettete Abfrage-API, während der Abfrage-Builder von CodeIgniter einfacher und Array-basiert ist. Datenvalidierung: Laravel bietet eine Validator-Klasse, die benutzerdefinierte Validierungsregeln unterstützt, während CodeIgniter über weniger integrierte Validierungsfunktionen verfügt und eine manuelle Codierung benutzerdefinierter Regeln erfordert. Praxisfall: Beispiel einer Benutzerregistrierung zeigt Lar

Laravel – Artisan Commands – Laravel 5.7 bietet eine neue Möglichkeit, neue Befehle zu behandeln und zu testen. Es enthält eine neue Funktion zum Testen von Handwerkerbefehlen und die Demonstration wird unten erwähnt?

Für Anfänger bietet CodeIgniter eine sanftere Lernkurve und weniger Funktionen, deckt aber die Grundbedürfnisse ab. Laravel bietet einen größeren Funktionsumfang, weist jedoch eine etwas steilere Lernkurve auf. In Bezug auf die Leistung schneiden sowohl Laravel als auch CodeIgniter gut ab. Laravel verfügt über eine umfangreichere Dokumentation und aktive Community-Unterstützung, während CodeIgniter einfacher und leichtgewichtiger ist und über starke Sicherheitsfunktionen verfügt. Im praktischen Fall der Erstellung einer Blogging-Anwendung vereinfacht EloquentORM von Laravel die Datenmanipulation, während CodeIgniter mehr manuelle Konfiguration erfordert.

Bei der Auswahl eines Frameworks für große Projekte haben Laravel und CodeIgniter jeweils ihre eigenen Vorteile. Laravel ist für Anwendungen auf Unternehmensebene konzipiert und bietet modularen Aufbau, Abhängigkeitsinjektion und einen leistungsstarken Funktionsumfang. CodeIgniter ist ein leichtes Framework, das sich eher für kleine bis mittelgroße Projekte eignet und Wert auf Geschwindigkeit und Benutzerfreundlichkeit legt. Für große Projekte mit komplexen Anforderungen und einer großen Anzahl von Benutzern sind die Leistung und Skalierbarkeit von Laravel besser geeignet. Für einfache Projekte oder Situationen mit begrenzten Ressourcen sind die leichten und schnellen Entwicklungsfunktionen von CodeIgniter idealer.

Die Microservice-Architektur nutzt PHP-Frameworks (wie Symfony und Laravel) zur Implementierung von Microservices und folgt RESTful-Prinzipien und Standarddatenformaten zum Entwerfen von APIs. Microservices kommunizieren über Nachrichtenwarteschlangen, HTTP-Anfragen oder gRPC und nutzen Tools wie Prometheus und ELKStack zur Überwachung und Fehlerbehebung.

Für kleine Projekte eignet sich Laravel, für größere Projekte, die starke Funktionalität und Sicherheit erfordern. CodeIgniter eignet sich für sehr kleine Projekte, die geringes Gewicht und Benutzerfreundlichkeit erfordern.

Vergleichen Sie Laravel's Blade und die Twig-Vorlagen-Engine von CodeIgniter und wählen Sie je nach Projektanforderungen und persönlichen Vorlieben: Blade basiert auf der MVC-Syntax, die eine gute Codeorganisation und Vorlagenvererbung fördert. Twig ist eine Bibliothek eines Drittanbieters, die flexible Syntax, leistungsstarke Filter, erweiterten Support und eine Sicherheits-Sandbox bietet.
