Globale Bereiche sind ein wichtiges Konzept in Laravel und ermöglichen die Wiederverwendung von Eloquent-Bedingungen in Ihrer gesamten Anwendung. Durch die Implementierung von Global Scopes können Sie spezifische Bedingungen auf Abfragen in allen Modellen anwenden und so die Wiederverwendung und Konsistenz von Code fördern. Im Gegensatz dazu sind Local Scopes auf ein einzelnes Modell beschränkt. In diesem Tutorial konzentrieren wir uns auf die Erstellung und Nutzung von Global Scopes in Laravel.
where('is_active', '=', '1'); //or we can write $builder->whereIsActive('1'); } }
Nachdem das ActiveScope im Modell hinzugefügt wurde, generiert User::all() das folgende SQL.
select * from `users` where `is_active` = '1'Es kann Szenarien geben, in denen Sie alle Daten abrufen möchten, ohne den globalen Bereich anzuwenden. In Laravel können Sie einen globalen Bereich umgehen und alle Daten abrufen, indem Sie die Methode withoutGlobalScope verwenden.
User::withoutGlobalScope(ActiveScope::class)->get();Wenn Sie mehrere oder alle auf ein Modell angewendeten globalen Bereiche entfernen möchten, können Sie die Methode withoutGlobalScopes in Laravel verwenden. Mit dieser Methode können Sie alle globalen Bereiche umgehen oder diejenigen angeben, die Sie entfernen möchten. Hier ist ein Beispiel:
// Remove all of the global scopes... User::withoutGlobalScopes()->get();// Remove some of the global scopes... User::withoutGlobalScopes([ ActiveScope::class, AgeScope::class ])->get();Und wenn Ihnen der Inhalt gefällt und Sie weitere tolle Artikel unterstützen möchten, denken Sie darüber nach, mir einen Kaffee zu spendieren! ☕️? Ihre Unterstützung bedeutet mir sehr viel und hilft, den Wissensfluss aufrechtzuerhalten. Das können Sie hier tun: ? Kauf mir einen Kaffee
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3