4

我刚刚使用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 页面不显示。

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

4

2 回答 2

5

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

于 2016-08-15T12:52:07.233 回答
1

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

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

于 2019-03-07T14:02:17.093 回答