Azi*_*tti 3 php laravel laravel-routing laravel-5 laravel-5.3
任何人都可以解释这些行吗?这个怎么运作?
public function boot()
{
parent::boot();
Route::model('user', App\User::class);
}
Run Code Online (Sandbox Code Playgroud)
接下来,定义一个包含{user}参数的路由:
$router->get('profile/{user}', function(App\User $user) {
//
});
Run Code Online (Sandbox Code Playgroud)
这称为路由模型显式绑定
有了这个:
Route::model('user', App\User::class);
Run Code Online (Sandbox Code Playgroud)
你是说:当一个'user'字符串在路由中用作参数时,App\User::class为我创建一个模型,它与传递给路由的参数具有相同的 id。然后在路由方法处理程序上注入模型。
例如, url:'profile/10'将匹配此路由:
$router->get('profile/{user}', function(App\User $user) {
//
});
Run Code Online (Sandbox Code Playgroud)
App\UserLaravel 会自动获取 id 为 10的模型
从一般的角度来看,通常在您的路线中,您会执行以下操作:
public function edit($id)
{
//fetch the user from db...
$user = User::find($id);
//do something with the $user...
}
Run Code Online (Sandbox Code Playgroud)
使用路由模型绑定,您可以:
public function edit(App\User $user)
{
//do something with $user...
}
Run Code Online (Sandbox Code Playgroud)
避免从数据库中获取模型:Laravel 会为你做