Heim >Backend-Entwicklung >PHP-Tutorial >Aufzündete Routenberechtigungen in Laravel

Aufzündete Routenberechtigungen in Laravel

Robert Michael Kim
Robert Michael KimOriginal
2025-03-06 01:37:08768Durchsuche

Enum-Powered Route Permissions in Laravel

laravel vereinfacht nun die Berechtigungsprüfung beim Routing, indem Sie die Unterstützung der Aufzählung in der can() -Methode direkt hinzufügen. Diese Verbesserung beseitigt die Notwendigkeit, explizit auf die value -Formen von Aufzählungen zugreifen zu können, wodurch die Routing -Definition einfacher und ausdrucksvoller wird.

Diese Funktion ist besonders großartig, wenn Sie Administratorplatten oder Multi-Mieter-Anwendungen erstellen, bei denen das Berechtigungsmanagement kritisch ist und Sie die Sicherheitsfunktionen von PHP nutzen möchten.

Route::get('/admin', function () {
    // ...
})->can(Permission::ACCESS_ADMIN);

Folgendes ist, wie die rollenbasierte Routing im Administratorbereich implementiert wird:

// app/Enums/AdminAccess.php

<?php namespace App\Enums;

enum AdminAccess: string
{
    case VIEW_REPORTS = 'view_reports';
    case MANAGE_STAFF = 'manage_staff';
    case EDIT_CONFIG = 'edit_config';
}

// web.php
Route::prefix('admin')->group(function () {
    Route::get('/reports', ReportController::class)
        ->can(AdminAccess::VIEW_REPORTS);

    Route::get('/staff', StaffController::class)
        ->can(AdminAccess::MANAGE_STAFF);

    Route::post('/config', ConfigController::class)
        ->can(AdminAccess::EDIT_CONFIG);
});

Routing -Definitionen werden intuitiver und einfacher zu pflegen:

// 旧方法
->can(AdminAccess::MANAGE_STAFF->value)
// 新方法,更简洁
->can(AdminAccess::MANAGE_STAFF)
Die erweiterte

-Methode macht Ihre Berechtigungsbasis eleganter und behält gleichzeitig die Vorteile des PHP-Typ-Systems bei. can()

Das obige ist der detaillierte Inhalt vonAufzündete Routenberechtigungen in Laravel. 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