Покращення авторизації в Laravel за допомогою Backed Enums

Перекладено ШІ 0 Laravel News 18 березня, 2025

Laravel нещодавно представив підтримку перерахувань для авторизації, що значно спростило процес перевірки дозволів. Дізнайтеся, як ця нова функція робить вашу кодову базу більш інтуїтивною та легшою у супроводі!

Laravel тепер безпосередньо підтримує back-end enums в авторизації, що усуває потребу у посиланні на властивість значення enum. Цей спрощений підхід робить перевірку прав доступу інтуїтивно зрозумілою та більш зручною в обслуговуванні.

Застосування є простим:

enum ReportPermission: string
{
    case VIEW = 'reports.view';
    case EXPORT = 'reports.export';
    case MANAGE = 'reports.manage';
}
 
public function showReport(): View
{
    $this->authorize(ReportPermission::VIEW);
 
    return view('reports.show');
}

Ця модель елегантно працює в складних системах авторизації:

enum ContentPermission: string
{
    case LIST_ARTICLES = 'content.articles.list';
    case VIEW_ARTICLE = 'content.articles.view';
    case CREATE_ARTICLE = 'content.articles.create';
    case MODIFY_ARTICLE = 'content.articles.update';
    case REMOVE_ARTICLE = 'content.articles.delete';
}
 
class ArticleController extends Controller
{
    public function index()
    {
        $this->authorize(ContentPermission::LIST_ARTICLES);
 
        return Inertia::render('Articles/Index', [
            'articles' => Article::with('author')
                ->latest()
                ->paginate(15)
        ]);
    }
 
    public function store(ArticleRequest $request)
    {
        $this->authorize(ContentPermission::CREATE_ARTICLE);
 
        $article = Article::create(array_merge(
            $request->validated(),
            ['author_id' => auth()->id()]
        ));
 
        return redirect()
            ->route('articles.edit', $article)
            ->with('status', 'Статтю успішно створено');
    }
 
    public function update(ArticleRequest $request, Article $article)
    {
        $this->authorize(ContentPermission::MODIFY_ARTICLE);
 
        $article->update($request->validated());
 
        event(new ArticleUpdated($article));
 
        return back()->with('status', 'Статтю оновлено');
    }
}

Підтримка enumerations створює більш типобезпечний і зручний для розробника підхід до визначення та перевірки прав доступу в усій вашій аплікації.

Популярні

Інше, що варто прочитати

173 Оновлено 01 червня, 2026

Використання повнотекстового пошуку в Laravel

Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом

10 Оновлено 01 червня, 2026

Генерація документації в Laravel за допомогою штучного інтелекту

Docudoodle — це потужний пакет для генерації документації в Laravel, який допомагає легко аналізувати вашу кодову базу та створювати документацію за допомогою обраного вами AI. Чи готові ви дізнатися, як цей інструмент може спростити вашу роботу з документуванням коду? Читайте далі!

19 Оновлено 01 червня, 2026

Використання штучного інтелекту для управління перекладами в Laravel

Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!