我刚用Shift将我的Laravel项目从5.2升级到5.3。手动合并文件后,Shift无法合并,我打开了一个标签,然后转到我的项目。似乎路线模型绑定无法正常工作。
我使用sluggable包。
Route::get('team/{team}', function (App\Models\Team $team) {
dd($team);
});
但是当我使用slug或id上面的代码时,我只得到一个新的模型实例而不是相关的模型。即使我从模型中删除了可缓慢的特征并在路径中使用了ID。当我使用不存在的id时,404页面不显示。
我不确定导致错误的原因是什么?欢呼声。
答案 0 :(得分:5)
将\Illuminate\Routing\Middleware\SubstituteBindings::class
添加到中间件后修复。
答案 1 :(得分:1)
如果您遇到从5.2升级的相同问题,请对照5.3版本检查内核文件: https://github.com/laravel/laravel/blob/5.3/app/Http/Kernel.php
\ Illuminate \ Routing \ Middleware \ SubstituteBindings :: class 应该包含在受保护的 $ middlewareGroups 的'web'下。也许最安全的选择是从github复制整个内核,这样您就不会错过任何内容。