Abe*_*vez 7 php binding routes laravel
在我,routes.php
我有这个:
Route::get('user/{user}/permissions/','UserController@permissions')->name('user.permissions');
Run Code Online (Sandbox Code Playgroud)
在我的控制器中我有:
public function permissions(User $user){
dd($user);
}
Run Code Online (Sandbox Code Playgroud)
$ user是空对象(如新用户; 没有属性)
如果我使用:
public function permissions($user){
dd(User::find($user));
}
Run Code Online (Sandbox Code Playgroud)
完美的工作!
我之前有Laravel 5.2并且这段代码工作正常但是在Laravel 5.5中它不起作用,任何想法为什么?
lag*_*box 15
听起来你从5.2升级到......某个版本.
Laravel 5.3使用SubstitueBindings
中间件进行隐式和显式绑定,在中间件堆栈之前不再通过路由器完成.
如果您升级并且没有将此中间件添加到任何组,则您将不会拥有路由模型绑定,因为中间件负责使用绑定替换参数.
"现在使用中间件完成路径模型绑定.所有应用程序都应将其添加
Illuminate\Routing\Middleware\SubstituteBindings
到文件中的web
中间件组app/Http/Kernel.php
:
\Illuminate\Routing\Middleware\SubstituteBindings::class,
您还应该在
$routeMiddleware
HTTP内核的属性中注册路由中间件以进行绑定替换:
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
......"
归档时间: |
|
查看次数: |
3567 次 |
最近记录: |