我刚用Shift将我的Laravel项目从5.2升级到5.3。手动合并文件后Shift无法合并我打开了一个选项卡并转到我的项目。似乎路由模型绑定无法正常工作。
我使用sluggable包。
Route::get('team/{team}', function (App\Models\Team $team) {
dd($team);
});
但是当我使用slug或id上面的代码时,我只得到一个新的模型实例而不是相关的模型。即使我从模型中删除了可缓慢的特征并在路径中使用了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应该包含在'web'下受保护的$ middlewareGroups中。可能最安全的选择是从github复制整个内核,这样你就不会错过任何东西。