Laravelは、can()
メソッドに列挙サポートを直接追加することにより、ルーティングの許可チェックを簡素化するようになりました。この拡張により、列挙のvalue
プロパティに明示的にアクセスする必要性がなくなり、ルーティング定義をよりシンプルで表現力を高めます。
この機能は、許可管理が重要であり、PHPのタイプの安全機能を活用する管理者パネルまたはマルチテナントアプリケーションを構築する場合に特に最適です。
Route::get('/admin', function () { // ... })->can(Permission::ACCESS_ADMIN);
以下は、管理パネルにロールベースのルーティングを実装する方法です。
// 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); });
拡張された
// 旧方法 ->can(AdminAccess::MANAGE_STAFF->value) // 新方法,更简洁 ->can(AdminAccess::MANAGE_STAFF)
以上がLaravelの列挙駆動ルート権限の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。