任何人都可以解释这些行吗?它是如何工作的?
public function boot()
{
parent::boot();
Route::model('user', App\User::class);
}
接下来,定义一个包含{user}
参数的路由:
$router->get('profile/{user}', function(App\User $user) {
//
});
最佳答案
这叫做 Route Model Explicit Binding
有了这个:
Route::model('user', App\User::class);
你是说:当一个 'user'
字符串在路由中用作参数时,为我创建一个 App\User::class
模型,与传递给路由的参数具有相同的 id。然后在路由方法处理程序上注入(inject)模型。
例如,url: 'profile/10'
将匹配这个路由:
$router->get('profile/{user}', function(App\User $user) {
//
});
而id为10的App\User
模型会被Laravel自动获取
从一般的角度来看,通常在你的 route 你会做这样的事情:
public function edit($id)
{
//fetch the user from db...
$user = User::find($id);
//do something with the $user...
}
使用路由模型绑定(bind),您可以:
public function edit(App\User $user)
{
//do something with $user...
}
避免从数据库中获取模型:Laravel 会为您完成
关于php - Route::model 在 Laravel 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40237990/