从 Laravel 5.2 升级到 5.3 后的隐式路由绑定问题

Implicit route binding issue after upgraded from Laravel 5.2 to 5.3

我刚刚用 Shift 将我的 Laravel 项目从 5.2 升级到 5.3。手动合并 Shift 无法合并的文件后,我打开了一个选项卡并转到了我的项目。而且路由模型绑定似乎无法正常工作。

我使用 sluggable 包。

Route::get('team/{team}', function (App\Models\Team $team) {
    dd($team);
});

但是当我将上面的代码与 slug 或 id 一起使用时,我只是得到一个新的模型实例而不是关联的模型。即使我从模型中删除了 sluggable 特征并在路由中使用了一个 ID。当我使用不存在的 id 时,404 页面不显示。

我不确定是什么原因导致错误,有什么想法吗?干杯。

\Illuminate\Routing\Middleware\SubstituteBindings::class 添加到中间件后已修复。

如果您 运行 从 5.2 升级到同样的问题,请对照 5.3 版本检查您的内核文件: https://github.com/laravel/laravel/blob/5.3/app/Http/Kernel.php

\Illuminate\Routing\Middleware\SubstituteBindings::class 应包含在 下受保护的 $middlewareGroups 中'web'。可能最安全的选择是从 github 复制整个内核,这样您就不会错过任何东西。