Maison > développement back-end > tutoriel php > Autorisations d'itinéraire alimenté en énumération à Laravel

Autorisations d'itinéraire alimenté en énumération à Laravel

Robert Michael Kim
Libérer: 2025-03-06 01:37:08
original
769 Les gens l'ont consulté

Enum-Powered Route Permissions in Laravel

Laravel simplifie désormais la vérification de l'autorisation dans le routage en ajoutant directement le support d'énumération dans la méthode can(). Cette amélioration élimine la nécessité d'accéder explicitement aux propriétés value des énumérations, ce qui rend la définition de routage plus simple et plus expressive.

Cette fonctionnalité est particulièrement grande lors de la construction de panneaux d'administration ou d'applications multi-locataires où la gestion de l'autorisation est critique et vous souhaitez profiter des caractéristiques de sécurité de type PHP.

Route::get('/admin', function () {
    // ...
})->can(Permission::ACCESS_ADMIN);
Copier après la connexion

Ce qui suit est de savoir comment implémenter le routage basé sur les rôles dans le panneau d'administration:

// 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);
});
Copier après la connexion

Les définitions de routage deviennent plus intuitives et faciles à entretenir:

// 旧方法
->can(AdminAccess::MANAGE_STAFF->value)
// 新方法,更简洁
->can(AdminAccess::MANAGE_STAFF)
Copier après la connexion
La méthode améliorée

rend votre routage basé sur la permission plus élégant tout en conservant les avantages du système de type PHP. can()

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal