如何使用Route::资源只应用中间件来存储/更新



在存储/更新数据时,我需要设置DataSavingClearing中间件,如

Route::put('data-put', array('as' => 'data-put', 'uses' => 'Controller@update'))->middleware('DataSavingClearing:notes');

参数注释是DataSavingClearing的一些附加参数。

但我的许多路线都是用资源定义的

Route::resource('items', 'Controller', [ 'except' => ['show' ] ] );  // ->middleware('DataSavingClearing');

我可以设置某种方式在上面的行中显示中间件DataSavingClearing必须仅应用于存储/更新吗?

laravel/framework 9.19

提前感谢!

您可以在控制器的构造函数中为某些路由添加中间件,如下所示:

/**
* Enforce middleware.
*/
public function __construct()
{
$this->middleware('auth', ['only' => ['create', 'store', 'edit', 'delete']]);
// Alternativly
$this->middleware('auth', ['except' => ['index', 'show']]);
}

文档

您可以在控制器的构造函数中设置它:

class Controller
{
public function __construct()
{
$this->middleware('DataSavingClearing:notes')->except('show');
}
}

或者反过来:

class Controller
{
public function __construct()
{
$this->middleware('DataSavingClearing:notes')->only('store', 'update');
}
}

最新更新