راکت

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

3 پاسخ

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

Route::apiResource('products', \\App\\Http\\Controllers\\ProductController::class);
mostafank
mostafank
@mostafaniakan96
ثبت پرسش جدید

پاسخ‌ها

3
میکائیل
میکائیل
@FullStack

تخصص: برنامه نویسی سمت سرور و کلاینت

سلام وقت بخیر
ببینید دوست عزیز شما میتونید تو 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
mostafank
@mostafaniakan96

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

شاید پاسخ شما همین‌جا باشد

رحمت جعفری
رحمت جعفری
@tirtash

تخصص: laravel developer

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

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

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