Heim Backend-Entwicklung PHP-Tutorial Laravel-Berechtigungskontroll-Gate-Richtlinie

Laravel-Berechtigungskontroll-Gate-Richtlinie

Jun 05, 2018 am 09:46 AM
gate laravel

Dieser Artikel stellt hauptsächlich die Laravel-Berechtigungskontroll-Gate-Richtlinie vor, die einen gewissen Referenzwert hat. Jetzt kann ich sie mit allen Freunden teilen, die sie benötigen.

Über Berechtigungen

Im Wesentlichen beschreibt es die Beurteilung, ob die Produktion auf der Grundlage einer ausführbaren logischen Einheit gestartet werden soll.

Definition Es muss eine Benutzerinstanz oder einen eindeutigen Identifikationsparameter und die damit verbundene Nutzungsressource vorhanden sein. Normalerweise wird ein Abschluss oder eine Funktion oder Methode

verwendet, um das Handle der logischen Berechtigungseinheit, das Parameterberechtigungsoperationsobjekt und die Benutzerinformationen aufzurufen.

Origin

Die grundlegendste Berechtigungskontrolle, ternärer Operator? :. Offensichtlich bedingte Beurteilung, dann springen Sie zur entsprechenden Ausführungslogik.

Laravels Idee besteht darin, Ausführungslogik (Produktionscode) und Autorisierung (bedingte Beurteilungslogik) zu trennen. Konzentrieren Sie sich auf die Generierung von Bedingungen und stärken Sie im Allgemeinen die Autorisierungslogik (dies ist bei komplexen Autorisierungen sehr nützlich). Postulat: Alle Codes werden gestartet, nachdem die Dienstregistrierung abgeschlossen ist. Daher wird der folgende Code registriert. Sein Zweck besteht darin, den logischen Körper zu finden, der wirklich ein Urteil ermöglicht.

Gate::define('update articles', 'ArticlePolicy@update')
Nach dem Login kopieren

Der erste Parameter ist offensichtlich nur eine Autorisierungskennung (der Handle-Parameter, der zum Aufrufen verwendet wird), und der zweite Parameter ist der autorisierte logische Ausführungskörper.

Laravel-Autorisierungsdefinition

Autorisierung in der AuthServiceProvider-Methode von boot

Gate::define('update articles', function ($user, $article) {
    return $user->id == $article->user_id;
});

Gate::define('update articles', 'ArticlePolicy@edit');
Nach dem Login kopieren
<?php

namespace App\Policies;

use App\User;
use App\Models\Article;

class ArticlePolicy
{
    public function update(User $user, Article $article)
    {
        return $user->id == $article->author_id;
    }
}
Nach dem Login kopieren
< definieren 🎜>

Laravel genehmigt die Verwendung von

  1. Torfassaden:

    und Gate::allows(&#39;update articles&#39;, $article). Gate::denies(&#39;update articles&#39;, $article)

  2. Controller führt

    Merkmal ein AuthorizesRequests

    . $this->authorize(&#39;update articles&#39;, $article)

  3. Blade-Vorlage:

    - und @can(&#39;update articles&#39;, $article)-Anweisungen. @cannot(&#39;update articles&#39;, $article)

  4. Benutzermodellinstanzen:

    und $user->can(&#39;update articles&#39;, $article). $user->cannot(&#39;update articles&#39;, $article)

Laravel-Richtlinie

Um die Autorisierung einfach zu definieren und zu verwenden, führt Laravel eine auf Gate basierende Richtlinie ein. Jede Methode innerhalb der Richtlinie wird mit der Beschreibung der Methode „gate::define“ registriert. Aus diesem Grund kann nach Verwendung der Richtlinienklassenregistrierung die Form von Gate::allow('Strategieklassenmethode') im Controller weiterhin zur Durchführung einer Autorisierungsbeurteilung verwendet werden, auch wenn die Autorisierungslogik nicht mit der Gate-Fassade definiert ist.


Definieren Sie zunächst die Berechtigungszuordnungsbeziehung im

Array-Attribut von AuthServiceProviderpolicies

/**
 * The policy mappings for the application.
 *
 * @var array
 */
protected $policies = [
    Article::class => ArticlePolicy::class,
];
Nach dem Login kopieren
<?php

namespace App\Policies;

use App\User;
use App\Models\Article;
use Illuminate\Auth\Access\HandlesAuthorization;

class ArticlePolicy
{
    use HandlesAuthorization;

    public function create(User $user)
    {
        return true;
    }

    public function delete(User $user, Article $article)
    {
        return $user->id == $article->author_id;
    }

     public function before($user, $ability)
    {
        if($user->isSuperAdmin()){
            return true;
        }
    }
 }
Nach dem Login kopieren

Hinweis:

Policy is only im Normalfall verwendet Ein

-Merkmal wird der PHP-Klasse hinzugefügt. HandlesAuthorization

In Policy wird es aufgerufen, bevor alle Methoden ausgeführt werden. Es wird häufig zur Verwaltung der Administrator-Autorisierungslogik verwendet.


Verwandte Empfehlungen:

Wie Laravel gulp verwendet, um Front-End-Ressourcen zu erstellen

Das obige ist der detaillierte Inhalt vonLaravel-Berechtigungskontroll-Gate-Richtlinie. 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

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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie bekomme ich den Rückgabecode, wenn das Senden von E -Mails in Laravel fehlschlägt? Wie bekomme ich den Rückgabecode, wenn das Senden von E -Mails in Laravel fehlschlägt? Apr 01, 2025 pm 02:45 PM

Methode zum Abholen des Rücksendecode, wenn das Senden von Laravel -E -Mails fehlschlägt. Wenn Sie Laravel zur Entwicklung von Anwendungen verwenden, stellen Sie häufig Situationen auf, in denen Sie Überprüfungscodes senden müssen. Und in Wirklichkeit ...

Sesam Open Door Exchange Webseite Login Neueste Version Gateio Offizieller Website Eingang Sesam Open Door Exchange Webseite Login Neueste Version Gateio Offizieller Website Eingang Mar 04, 2025 pm 11:48 PM

Eine detaillierte Einführung in den Anmeldungsbetrieb der Sesame Open Exchange -Webversion, einschließlich Anmeldeschritte und Kennwortwiederherstellungsprozess.

Der neueste Version von Gate.io Der neueste Version von Gate.io Mar 05, 2025 pm 07:51 PM

Müssen Sie die App Gate.io herunterladen, um Ihre Kryptowährungsreise zu beginnen? In diesem Handbuch werden die neuesten Versionsschritte für iOS-, Android- und Windows -Geräte heruntergeladen. Besuchen Sie einfach die offizielle Website, suchen Sie den Download -Link und wählen Sie die entsprechende Option basierend auf Ihrem Gerät aus. Für iOS geht es direkt zum App Store, während Android- und Windows -Benutzer die apk oder das Installationsprogramm für die manuelle Installation herunterladen. Nach der Installation können Sie die App starten und Ihr Konto einrichten, um in die Welt der Kryptowährung einzutreten.

Überprüfung des vollständigsten historischen Preises von Bitcoin (die neueste Version von 2025) Überprüfung des vollständigsten historischen Preises von Bitcoin (die neueste Version von 2025) Mar 05, 2025 pm 08:42 PM

Dieser Artikel enthält eine detaillierte Überprüfung der neuesten Version von Bitcoin's Historical Price im Jahr 2025 und beschreibt den Preistrend von Bitcoin seit seiner Geburt im Jahr 2009. Von seiner anfänglichen Dunkelheit bis zu einem globalen digitalen Vermögenswert hat Bitcoin Price viele Anstände erlebt und gesunken. Wir werden die Hauptfaktoren analysieren, die die Bitcoin -Preisschwankungen beeinflussen, einschließlich technologischer Entwicklung, regulatorischer Richtlinien, Marktgefühle und makroökonomisches Umfeld, und eine Aussichten für zukünftige Entwicklungstrends vornehmen, um den Lesern eine umfassende Referenz für das Verständnis der Änderungen des Bitcoin -Preises zu bieten und den Anlegern die Risikobewertungen besser durchzuführen.

Laravel -Zeitplanaufgabe wird nicht ausgeführt: Was soll ich tun, wenn die Aufgabe nicht nach Zeitplan ausgeführt wird: Befehl ausführen? Laravel -Zeitplanaufgabe wird nicht ausgeführt: Was soll ich tun, wenn die Aufgabe nicht nach Zeitplan ausgeführt wird: Befehl ausführen? Mar 31, 2025 pm 11:24 PM

Laravel -Zeitplan -Aufgabe Ausführen nicht reagierende Fehlerbehebung Bei Verwendung der Zeitplanung von Laravel -Zeitplänen werden viele Entwickler auf dieses Problem stoßen: Zeitplan: Run ...

Wie kann man in Laravel mit der Situation umgehen, in der Überprüfungscodes nicht per E -Mail gesendet werden? Wie kann man in Laravel mit der Situation umgehen, in der Überprüfungscodes nicht per E -Mail gesendet werden? Mar 31, 2025 pm 11:48 PM

Die Methode zum Umgang mit Laravels E -Mail -Versagen zum Senden von Verifizierungscode besteht darin, Laravel zu verwenden ...

Sesame Open Door Exchange App offizieller Download Sesam Open Door Exchange Offizielle Download Sesame Open Door Exchange App offizieller Download Sesam Open Door Exchange Offizielle Download Mar 04, 2025 pm 11:54 PM

Die offiziellen Download -Schritte des Sesam Open Exchange -App -App -App -Prozesss decken den Download -Prozess des Android- und iOS -Systems sowie allgemeine Probleme mit Lösungen ab, mit denen Sie sicher und schnell herunterladen und bequeme Transaktionen von Kryptowährungen ermöglichen.

Free Market Software App -Website Free Market Software App -Website Mar 05, 2025 pm 09:03 PM

In diesem Artikel werden kostenlose Apps und Websites für digitale Asset-Angebote für Angebote und Websites eingeführt, mit denen Anleger wichtige Informationen wie Echtzeitpreise, Preisdiagramme, Transaktionsvolumen, Schwankungen, Markttiefe und Nachrichteninformationen zur Verfügung stellen können, mit denen Anleger fundierte Entscheidungen treffen können. Im Vergleich zur bezahlten Software hat kostenlose Software die Vorteile ohne Kosten, reichhaltige Funktionen und einfacher Betrieb. Der Artikel leitet Benutzer auch, wie sie die richtige Marktsoftware auswählen, und erinnert die Benutzer daran, auf Datenquellen, Informationsgenauigkeit zu achten und übermäßige Abhängigkeiten zu vermeiden, was den Anlegern letztendlich hilft, die Trends des digitalen Vermögensmarktes besser zu erfassen. Möchten Sie wissen, wie Sie freie Marktsoftware effizient verwenden können? Lesen Sie den vollständigen Text schnell!

See all articles