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

Kebenaran laluan berkuasa enum di Laravel

Robert Michael Kim
Lepaskan: 2025-03-06 01:37:08
asal
768 orang telah melayarinya

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);
Salin selepas log masuk
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);
});
Salin selepas log masuk
Definisi penghalaan menjadi lebih intuitif dan mudah dikekalkan:

Kaedah yang dipertingkatkan
// 旧方法
->can(AdminAccess::MANAGE_STAFF->value)
// 新方法,更简洁
->can(AdminAccess::MANAGE_STAFF)
Salin selepas log masuk
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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan