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

标签 php laravel laravel-5 laravel-5.3 laravel-routing

任何人都可以解释这些行吗?它是如何工作的?

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/

相关文章:

php - 将 MySQL 代码与 PHP 代码分开是标准的、常见的做法吗?

laravel - 如何修复 "Predis\Response\ServerException ERR syntax error"?

php - 无法将 user_id 和 product_id 插入购物车。拉维尔 5

mysql - Laravel 5 replicate() 处理具有唯一属性的列

php - Laravel 5.2 验证请求 "not-in"未返回自定义消息

php - 如何将 CKFinder 与 Laravel 集成?

php - 如何将表单中的值存储到 mySQL 数据库中?

php - 'Acme' 在 Symfony2 中代表什么?

php - 禁用日期选择器中选定日期的日期

php - 拉维尔 |重用查询变量而不是重复查询