此代码适用于laravel 5.2但不适用于laravel 5.3。
我在RouteServiceProvider
:
\Route::model('users', \App\User::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的对象它是如何更早的。可能有什么问题?
答案 0 :(得分:1)
您应该确保添加了:
\Illuminate\Routing\Middleware\SubstituteBindings::class,
到web
文件中的api
或/和app/Http/Kernel.php
中间件。
在upgrade guide中,您可以阅读:
现在使用中间件完成路径模型绑定。所有 应用程序应添加 照亮\ Routing \ Middleware \ SubstituteBindings到您的网站 app / Http / Kernel.php文件中的中间件组:
\照亮\路由\中间件\ SubstituteBindings ::类,
您还应该注册路由中间件以进行绑定替换 在HTTP内核的$ routeMiddleware属性中:
&#39;绑定&#39; =&GT; \照亮\路由\中间件\ SubstituteBindings ::类,
一旦注册了此路由中间件,您应该将其添加到 api中间件组:
&#39; API&#39; =&GT; [ &#39;节气门:60,1&#39 ;, &#39;绑定&#39;,],