Route::model 在 Laravel 中是什么意思?

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)

Mop*_*ppo 5

这称为路由模型显式绑定

有了这个:

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 会为你做