Laravel Применить промежуточное ПО на определенном маршруте контроллера маршрута ресурсов

Я хочу применить промежуточное ПО при создании маршрута контроллера ресурсов, но не понимаю, как установить промежуточное ПО. Обычно мы можем добавить промежуточное ПО, подобное этому

Route::get('api/users/{user}', function (App\Models\User $user) {
    return $user->email;
})->middleware('name');

но когда у нас есть контроллер ресурсов, как я могу применить промежуточное ПО на одном маршруте контроллера ресурсов.

Route::resource('front-pages','Admin\FrontPagesController');

person Shahrukh    schedule 23.11.2020    source источник


Ответы (3)


создать функцию __construct()

в FrontPagesController.php

public function __construct()
{
    $this->middleware('auth', ['except' => ['index','show']]);
}

ref link https://laravel.com/docs/8.x/controllers#controller-middleware


все возможные функции

/**
 * Instantiate a new controller instance.
 *
 * @return void
 */
public function __construct()
{
    $this->middleware('auth');

    $this->middleware('log')->only('index');

    $this->middleware('subscribed')->except('store');
}
person Kamlesh Paul    schedule 23.11.2020
comment
Можно я тоже пройду только вместо кроме ?? - person Shahrukh; 23.11.2020
comment
Да, ты можешь сделать что угодно - person Kamlesh Paul; 23.11.2020

Вы можете использовать

 Route::resource('front-pages','Admin\FrontPagesController')->only('fornt-page.whatever name');

И вы можете сгруппировать его с промежуточным ПО

person Muhammad Tariq    schedule 23.11.2020

Route::middleware('name')->resource('front-pages' , 'Admin\FrontPagesController');

обратитесь к документации laravel: https://laravel.com/docs/8.x/middleware#introduction

person Yziaf_07    schedule 23.01.2021