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

时间:2016-08-15 11:01:24

标签: php laravel laravel-5.3

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

我使用sluggable包。

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

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

我不确定导致错误的原因是什么?欢呼声。

2 个答案:

答案 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复制整个内核,这样您就不会错过任何内容。