suchen
HeimPHP-FrameworkLaravelLaravel-Abfragebereich

Der Abfragebereich in Laravel ist eine sehr wichtige Funktion, die es Ihnen ermöglicht, einige häufig verwendete Abfragemethoden im Modell zur Wiederverwendung in der gesamten Anwendung zu definieren. Diese Abfragebereiche können global (für das gesamte Modell gelten) oder lokal (nur für eine Methode des Modells gelten) sein.

In diesem Artikel stellen wir die Definition, Verwendung und einige Dinge vor, die beim Abfragebereich in Laravel beachtet werden sollten.

  1. Definition des Abfragebereichs

Der Abfragebereich ist eine anonyme Funktion, die einen $query-Parameter empfängt, der eine Instanz des Eloquent Query Builder ist. In dieser anonymen Funktion können Sie einige Abfragevorgänge für die Instanz ausführen, z. B. das Hinzufügen von Where-Klauseln, Order-By-Klauseln usw.

Das Folgende ist ein einfaches Beispiel für die Definition eines Abfragebereichs:

public function scopePublished($query)
{
    return $query->where('status', '=', 'published');
}

Im obigen Beispiel definieren wir einen Abfragebereich mit dem Namen „publicated“, der in der Abfrage verwendet wird. Fügen Sie automatisch a hinzu where-Klausel zum Filtern veröffentlichter Modelle.

  1. Abfragebereich verwenden

Abfragebereich zu verwenden ist sehr einfach, rufen Sie einfach die entsprechende Methode des Modells auf. Wenn wir beispielsweise im obigen Beispiel den veröffentlichten Abfragebereich verwenden, müssen wir nur den folgenden Code aufrufen:

$posts = Post::published()->get();

Der obige Code gibt eine Sammlung aller veröffentlichten Post-Instanzen zurück.

Wenn Sie Parameter an den Abfragebereich übergeben müssen, fügen Sie einfach Parameter in dieser Methode hinzu. Beispiel:

public function scopeCategory($query, $categoryId)
{
    return $query->where('category_id', '=', $categoryId);
}

Dieser Abfragebereich kann zum Filtern von Blogbeiträgen nach einer bestimmten Kategorie verwendet werden.

$posts = Post::category(1)->get();

Der obige Code gibt alle Blogbeiträge mit der Kategorie-ID 1 zurück.

Hinweis: Abfragebereiche können verkettet werden, sodass Sie mehrere Abfragebereiche gleichzeitig verwenden können, um präzisere Ergebnisse zu erhalten.

  1. Globale Definition des Abfragebereichs

Wenn Sie im gesamten Modell denselben Abfragebereich verwenden möchten, können Sie eine globale Abfragebereichsdomäne definieren . Rufen Sie dazu einfach die Boot-Methode in Ihrem Modell auf und definieren Sie einen globalen Abfragebereich mithilfe der Methode static::addGlobalScope.

Das Folgende ist ein einfaches Beispiel für einen globalen Abfragebereich:

protected static function boot()
{
    parent::boot();

    static::addGlobalScope('active', function (Builder $builder) {
        $builder->where('active', '=', 1);
    });
}

Im obigen Beispiel definieren wir einen globalen Abfragebereich mit dem Namen „aktiv“ und beschränken ihn auf Datensätze, deren aktives Feld gleich ist 1.

Wenn Sie nun das Modell mit einer beliebigen Methode abfragen, wird der Abfragebereich automatisch wirksam.

  1. Abfragebereich entfernen

Manchmal müssen wir möglicherweise den Abfragebereich eines bestimmten Modells entfernen. Laravel stellt die Methode „removeGlobalScope“ bereit, um uns dabei zu helfen.

Angenommen, wir haben einen globalen Abfragebereich mit dem Namen „aktiv“, können wir ihn mit der folgenden Methode entfernen:

$users = User::withoutGlobalScope('active')->get();

Der obige Code hat keine Auswirkung auf die aktive Domäne Einschränkungen für alle Benutzer.

Hinweis: Wenn Sie alle globalen Abfragebereiche entfernen möchten, können Sie die Methode withoutGlobalScopes verwenden.

$users = User::withoutGlobalScopes()->get();

Der obige Code gibt alle Benutzer zurück, die nicht durch einen globalen Abfragebereich eingeschränkt sind.

Zusammenfassung

Der Abfragebereich ist eine äußerst leistungsstarke Funktion in Laravel. Durch die Verwendung von Abfragebereichen können Sie allgemeine Abfragevorgänge problemlos in Ihrer gesamten Anwendung wiederverwenden und Ihren Code übersichtlicher organisieren. Das Erlernen der richtigen Verwendung von Abfragebereichen kann nicht nur Ihre Produktivität steigern, sondern Ihnen auch dabei helfen, robustere Anwendungen zu erstellen.

Das obige ist der detaillierte Inhalt vonLaravel-Abfragebereich. 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
Die Illusion der Inklusion: Isolation und Einsamkeit in der entfernten Arbeit angehenDie Illusion der Inklusion: Isolation und Einsamkeit in der entfernten Arbeit angehenApr 25, 2025 am 12:28 AM

Tocombatisolationandloninessinremotework, CompaniessHouldImplementRegular, bedeutungsvolle Interaktionen, Bereitstellung von AusreichungstrowThopportunities, andusetechnology effective.) fostergenuineConnections ThroughvirtualCoffeebreaksandPersonalSharing.2) EnterurineConctions

Laravel für die Entwicklung voller Stapel: Ein umfassender LeitfadenLaravel für die Entwicklung voller Stapel: Ein umfassender LeitfadenApr 25, 2025 am 12:27 AM

Laravelispopularforfull-stackdevelopment

Videokonferenz -Showdown: Auswählen der richtigen Plattform für Remote -MeetingsVideokonferenz -Showdown: Auswählen der richtigen Plattform für Remote -MeetingsApr 25, 2025 am 12:26 AM

Zu den wichtigsten Faktoren für die Auswahl einer Videokonferenzplattform gehören die Benutzeroberfläche, die Sicherheit und die Funktionalität. 1) Die Benutzeroberfläche sollte intuitiv sein, z. B. Zoom. 2) Die Sicherheit muss beachtet werden, und Microsoft Teams bietet eine End-to-End-Verschlüsselung. 3) Funktionen müssen die Anforderungen entsprechen, Googlemeet eignet sich für kurze Besprechungen, und Ciscowebe bietet erweiterte Kollaborations -Tools.

Welche Datenbankversionen sind mit dem neuesten Laravel kompatibel?Welche Datenbankversionen sind mit dem neuesten Laravel kompatibel?Apr 25, 2025 am 12:25 AM

Die neueste Version von Laravel10 ist mit MySQL 5.7 und oben kompatibel, PostgreSQL 9.6 und höher, SQLite 3.8.8 und höher, SQLServer 2017 und höher. Diese Versionen werden ausgewählt, da sie die ORM -Funktionen von Laravel unterstützen, wie den JSON -Datentyp von MySQL5.7, der die Abfrage- und Speicher -Effizienz verbessert.

Die Vorteile der Verwendung von Laravel als Full-Stack-FrameworkDie Vorteile der Verwendung von Laravel als Full-Stack-FrameworkApr 25, 2025 am 12:24 AM

Laravelisanexzellentchoiceforfull-stackdevelopmentDuetoitsrobustFeaturesandeaseofuse.1) dotipliFies compextenswithitsmodernphpstaxandtoolslikeBladeForFront-EndandeloquentOmforback-End.2) Laravel-Ersecosystem, inkl

Was ist die neueste Version von Laravel?Was ist die neueste Version von Laravel?Apr 24, 2025 pm 05:17 PM

Laravel10, freigegebenes Februar 7.2023, iSthelatestversion.itFeatures: 1) AchtungserhandlingWithanewReportMethodinTheexceptionHandler, 2) EnhancedSupportForPhp8.1Features-ähnliche und 3) AneWlaravel \ EingabeaufforderungspackageforinteractiveCommandivePrompts.

Wie vereinfacht die neueste Laravel -Version die Entwicklung?Wie vereinfacht die neueste Laravel -Version die Entwicklung?Apr 24, 2025 pm 05:01 PM

ThelatestlaravelversionenHancesDevelopmentWith: 1) SimplifiedRoutingusedimplicitModelBinding, 2) EnhancedeloquentCapabilities WitheNewQueryMethods und 3) verbessert den SupportformodernphpfFeaturesLikeNaDarguments, machten die Kodierung von Kodeln moreffizemadern.

Wo finde ich die Versionshinweise für die neueste Laravel -Version?Wo finde ich die Versionshinweise für die neueste Laravel -Version?Apr 24, 2025 pm 04:53 PM

Die Versionshinweise finden Sie für die neueste Laravel -Version unter laravel.com/docs. 1) Versionshinweise bieten detaillierte Informationen zu neuen Funktionen, Fehlerbehebungen und Verbesserungen. 2) Sie enthalten Beispiele und Erklärungen, um die Anwendung neuer Funktionen zu verstehen. 3) Achten Sie auf die potenziellen Komplexitäts- und Rückwärtskompatibilitätsprobleme neuer Merkmale. 4) Eine regelmäßige Überprüfung der Versionshinweise kann es auf dem Laufenden halten und Innovationen inspirieren.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.