mostafank
2 سال پیش توسط mostafank مطرح شد
3 پاسخ

میدلور در لاراول

سلام دوستان من یک route product دارم که توش index show update delete و ... داره و میخوای روی این route یک middleware بزارم ولی نمیخوای روی index اعمال بشه و روت من چون از نوع apiResource نمیدونم چطور باید چیکار کنم

Route::apiResource('products', \\App\\Http\\Controllers\\ProductController::class);

ثبت پرسش جدید
میکائیل
تخصص : برنامه نویسی سمت سرور و کلاینت
@FullStack 2 سال پیش آپدیت شد
1

سلام وقت بخیر
ببینید دوست عزیز شما میتونید تو controller بیاید و توی construct میدلور رو اضافه کنید و اونجا بهش بگید که چه فانکشن هایی رو شامل بشه یا چه فانکشن هایی رو شامل نشه مثلا چیزی که شما میخوای این میشه

public function __construct()
{
        // این میگه همه فانکشن ها به جز اینایی که توی لیست هست
        $this->middleware('auth')->except(['index']);

        // این میگه فقط فانکشن هایی که توی لیست هستن رو شامل بشه این میدلور
        $this->middleware('auth')->only(['store','update','edit','create']);
}
// تو مثلا میتونی از except استفاده کنی بگی بجز index همشون این میدلور رو شامل بشن

توی خود روت هم میشه داد به این شکل میشه

Route::resource('product', ProductController::class, [
        'except' => [
            'index'
        ]
    ])
    ->middleware([ 'auth']);

ولی روش اول رایج تر و بهتر هست اونو استفاده کنی بهتره


mostafank
@mostafaniakan96 1 سال پیش مطرح شد
1

ممنون دوست عزیز 🙏🙏


رحمت جعفری
تخصص : laravel developer
@tirtash 1 سال پیش مطرح شد
0

جواب میکائیل عالی بود.👍👍👍👍


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

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