模型绑定与控制器功能 Laravel 路由

Lor*_*rti 3 php laravel-5

你好,我使用的是 laravel 5.4,我会在我的路由中使用模型绑定。但我会使用控制器功能:

Route::get('/user/{id}', 'usersController@show');
Run Code Online (Sandbox Code Playgroud)

但是我会使用模型绑定,因此在我的控制器中我会执行以下操作:

public function show(Request $request, User $user){
    dd($user->id)
}
Run Code Online (Sandbox Code Playgroud)

但现在$user->id为空,因为我不知道如何绑定模型和使用控制器功能。我试过:

Route::model('user', 'User');
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

是否可以?

tee*_*eyo 6

好吧,从 Laravel 手册中您不需要Route::model('user', 'User');,Laravel 为您做到了:

Laravel 会自动解析在路由或控制器操作中定义的 Eloquent 模型,这些模型的类型提示变量名称与路由段名称匹配。

所以只需更改这一行:

Route::get('/user/{user}', 'usersController@show');
Run Code Online (Sandbox Code Playgroud)

并且由于您对变量使用了类型提示,Laravel 会自动将其绑定到用户模型。