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);
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); });
Les définitions de routage deviennent plus intuitives et faciles à entretenir:
// 旧方法 ->can(AdminAccess::MANAGE_STAFF->value) // 新方法,更简洁 ->can(AdminAccess::MANAGE_STAFF)
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!