علیرضا فرهادی
4 هفته پیش توسط علیرضا فرهادی مطرح شد
0 پاسخ

تعریف middleware در کنترلر لاراول 11

سلام دوستان
من از لاراول 11 استفاده میکنم . با استفاده از پکیج spatie/laravel-permission میخوام دسترسی هارو تعریف کنم. مشکلم اینه که دایکیومنتش اپدیت نیست!
در دایکیونتش برای تعریف میدلویر در کنترلر اینجوری نوشته :

public function __construct()
{
    $this->middleware(['role:manager','permission:publish articles|edit articles']);
    // or
    $this->middleware(['role_or_permission:manager|edit articles']);
    // or with specific guard
    $this->middleware(['role_or_permission:manager|edit articles,api']);
}

ولی در لاراول 11 برای تعریف middleware در constractor باید اینجوری بنویسی:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Routing\Controllers\HasMiddleware;
use Illuminate\Routing\Controllers\Middleware;

class UserController extends Controller implements HasMiddleware
{
    /**
     * Get the middleware that should be assigned to the controller.
     */
    public static function middleware(): array
    {
        return [
            'auth',
            new Middleware('log', only: ['index']),
            new Middleware('subscribed', except: ['store']),
        ];
    }

    // ...
}

الان چجوری باید این کد دایکیونت رو به متد جدید لاراول تبدیل کنم؟ لطفا راهنمایی کنید.

لینک های مربوطه:
https://spatie.be/docs/laravel-permission/v6/basic-usage/middleware#content-controllers
https://laravel.com/docs/11.x/controllers#controller-middleware


ثبت پرسش جدید

به همدیگه کمک کنیم

به علیرضا فرهادی کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام