Rumah >pembangunan bahagian belakang >tutorial php >Kebenaran laluan berkuasa enum di Laravel

Kebenaran laluan berkuasa enum di Laravel

Robert Michael Kim
Robert Michael Kimasal
2025-03-06 01:37:08770semak imbas

Enum-Powered Route Permissions in Laravel

Laravel kini memudahkan pemeriksaan kebenaran dalam penghalaan dengan secara langsung menambah sokongan penghitungan dalam kaedah

. Peningkatan ini menghapuskan keperluan untuk mengakses sifat -sifat penghitungan can() secara eksplisit, menjadikan definisi penghalaan lebih mudah dan lebih ekspresif. value

Ciri ini sangat hebat apabila membina panel admin atau aplikasi multi-penyewa di mana pengurusan kebenaran adalah kritikal dan anda ingin memanfaatkan ciri-ciri keselamatan jenis PHP.

Route::get('/admin', function () {
    // ...
})->can(Permission::ACCESS_ADMIN);
Berikut adalah cara melaksanakan penghalaan berasaskan peranan dalam panel 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);
});
Definisi penghalaan menjadi lebih intuitif dan mudah dikekalkan:

Kaedah yang dipertingkatkan
// 旧方法
->can(AdminAccess::MANAGE_STAFF->value)
// 新方法,更简洁
->can(AdminAccess::MANAGE_STAFF)
menjadikan penghalaan berasaskan kebenaran anda lebih elegan sambil mengekalkan manfaat sistem jenis PHP.

Atas ialah kandungan terperinci Kebenaran laluan berkuasa enum di Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn