laravel - 如何将中间件部分分配给 Laravel 资源路由?
问题描述
如何将身份验证中间件分配给部分资源路由?
此代码是帖子的资源路径
Route::apiResource('posts', PostController::class);
可以解释如下
Route::get('posts', [PostController::class, 'index']);
Route::get('posts/create', [PostController::class, 'create']);
Route::get('posts/{id}', [PostController::class, 'show']);
Route::get('posts/{id}/edit', [PostController::class, 'edit']);
Route::post('posts', [PostController::class, 'store']);
Route::put('posts/{id}', [PostController::class, 'update']);
Route::delete('posts/{id}', [PostController::class, 'destroy']);
我只想将 auth 中间件分配给destroy
方法 or store
,update
等。
有什么方法可以坚持,Route::apiResource('posts', PostController::class);
但部分路由分配了身份验证中间件?
解决方案
您可以通过在您middleware
的方法中调用方法__construct()
来完成PostController
仅使用 ... 方法绑定中间件:
public function __construct()
{
$this->middleware('auth')
->only([
'destroy',
'store',
'update',
]);
}
或绑定到除 ... 之外的所有方法:
public function __construct()
{
$this->middleware('auth')
->except([
'show',
'index',
]);
}
推荐阅读
- oop - 支持字段公开时自动生成getter和setter的目的是什么
- python - Django中的简单查询
- java - ncpu.s 文件加载到错误的 'utf-8' android studio
- c# - .netcore Web 应用程序因“提供给函数的缓冲区太小”错误而失败
- javascript - 解析浮点数和 toFixed()
- angular - 以角度 6 显示 Spinner 直到 API 响应
- unity3d - 广告未在 Game Unity 上展示
- php - 来自 WordPress 元字段的数组中的名称键
- reactjs - Reactjs - 从另一个组件函数获取计算值后更新父级的状态
- react-native - 如何在屏幕上设置固定位置的反应原生动作按钮