Laravel 在资源路由控制器的特定路由上应用中间件
Laravel Apply middlware on specific route of resource route controller
我想在资源控制器的创建路由上应用中间件,但不知道如何设置中间件。通常我们可以这样添加中间件
Route::get('api/users/{user}', function (App\Models\User $user) {
return $user->email;
})->middleware('name');
但是当我们有一个资源控制器时,我如何在资源控制器的单个路由上应用中间件。
Route::resource('front-pages','Admin\FrontPagesController');
创建一个__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');
}
您可以使用
Route::resource('front-pages','Admin\FrontPagesController')->only('fornt-page.whatever name');
你可以把它和中间件分组
Route::middleware('name')->resource('front-pages' , 'Admin\FrontPagesController');
参考laravel文档:https://laravel.com/docs/8.x/middleware#introduction
我想在资源控制器的创建路由上应用中间件,但不知道如何设置中间件。通常我们可以这样添加中间件
Route::get('api/users/{user}', function (App\Models\User $user) {
return $user->email;
})->middleware('name');
但是当我们有一个资源控制器时,我如何在资源控制器的单个路由上应用中间件。
Route::resource('front-pages','Admin\FrontPagesController');
创建一个__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');
}
您可以使用
Route::resource('front-pages','Admin\FrontPagesController')->only('fornt-page.whatever name');
你可以把它和中间件分组
Route::middleware('name')->resource('front-pages' , 'Admin\FrontPagesController');
参考laravel文档:https://laravel.com/docs/8.x/middleware#introduction