laravel - 会话闪存和验证错误在新路由文件中不起作用
问题描述
laravel 5.8 嗨,我在路由目录中添加了一个名为“admin.php”的新路由文件,会话闪存和错误验证在此路由文件中不起作用,但在 web.php 会话闪存和验证错误效果很好
这是 RouteServiceProvider 中的 map 方法
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
$this->mapAdminRoutes();
}
mapAdminRoutes 方法
protected function mapAdminRoutes()
{
Route::prefix('admin')->middleware(['auth','admin'])
->namespace($this->namespace."\Admin")
->group(base_path('routes/admin.php'));
}
我不在 admin.php 路由中使用任何中间件
我尝试->middleware(['auth','admin'])
在 mapApiRoutes 方法中删除
注意:admin.php 路由的会话闪现和错误验证在 web.php 中运行良好
解决方案
您需要为新的路由文件应用会话中间件app/Http/Kernel.php
App\Http\Kernel
protected $middlewareGroups = [
'admin' => [
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
],
];
我剥离了其他中间件,
web
为了api
简洁起见,保留它们
您可以看到该web
组应用了StartSession
和ShareErrorsFromSession
中间件,因此您也必须为新路由文件手动执行此操作
希望这可以帮助
推荐阅读
- java - Spring 5 + Hibernate 5 集成 UnsatisfiedDependencyException Hproblem
- javascript - 如何在使用 v-for 的同一行上填充属性?
- macos - Unity 2018.2.10f1 Mac - 缺少用于访问 .accdb 的 System.Data、System.Data.odbc
- javascript - 如何遍历列表并获取每个 href 值?
- css - IE 11/Edge 以与其他浏览器不同的方式尊重 page-break-*
- docker - 来自标准输出的 ecs/fargate 日志记录(相当于 docker 中的 -t 选项)
- hive - Hive SQL,如何在group_concat中有多个列?
- ruby-on-rails - 访问存储在 credentials.yml.enc 中的信息
- meteor - 通过 Compose.io 在 Mongo 中保存日期与通过 Meteor 在 Mongo 中保存日期
- xml - 使用 xmllint 从 1 个元素中获取多个 xml 属性