在升级laravel 5.2到5.3之后,无法在Route :: model中绑定模型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在升级laravel 5.2到5.3之后,无法在Route :: model中绑定模型相关的知识,希望对你有一定的参考价值。

此代码适用于laravel 5.2但不适用于laravel 5.3。我在RouteServiceProvider

Route::model('users', AppUser::class, function ($value) {
    return User::where('name', $value)
              ->first();
});

在我的刀片中,我要求采取行动:

'<a href="{{ action('UserController@show',[Auth::user()->name]) }}">{{Auth::user()name}}</a>'

在我的UserController

public function show($user)
{
    return view('users.user.show', compact('user'));
}

而现在$user只是Auth::user()->name例如'qwerty'。但不是类User的对象它是如何更早的。有什么问题?

答案

你应该确保你添加了:

IlluminateRoutingMiddlewareSubstituteBindings::class,

web文件中的api或/和app/Http/Kernel.php中间件。

upgrade guide,您可以阅读:

现在使用中间件完成路径模型绑定。所有应用程序都应将Illuminate Routing Middleware SubstituteBindings添加到app / Http / Kernel.php文件中的Web中间件组:

照亮路由中间件 SubstituteBindings ::类,

您还应该在HTTP内核的$ routeMiddleware属性中注册路由中间件以进行绑定替换:

'bindings'=> Illuminate Routing Middleware SubstituteBindings :: class,

一旦注册了此路由中间件,您应该将其添加到api中间件组:

'api'=> ['油门:60,1','绑定',],

以上是关于在升级laravel 5.2到5.3之后,无法在Route :: model中绑定模型的主要内容,如果未能解决你的问题,请参考以下文章

将 PHP 从 5.2 版本升级到 5.3

Laravel 5.3 到 5.4 (mPdf - niklasravnsborg/laravel-pdf ) 升级问题

升级安卓4.4.2之后,安装的软件都不能从高版本覆盖安卓低版本,比如微信不能从5.3覆盖安装5.2

将 Laravel 从 5.3 升级到 5.4

laravel 5.4 在邮件中嵌入图像

从 Laravel 5.3 升级到 Laravel 5.4 并且空字段转换为 NULL