Php 有口才的模特和有口才的模特有什么区别?

Php 有口才的模特和有口才的模特有什么区别?,php,laravel,orm,model,eloquent,Php,Laravel,Orm,Model,Eloquent,所以,我对此感到困惑: 在拉威尔的官方文件中,他们说: Laravel附带的雄辩ORM提供了一个美丽、简单的 用于处理数据库的ActiveRecord实现。每个 数据库表有一个用于交互的对应“模型” 用那张桌子 好的,这里一切都很好,我明白了 所以我进行了一次迁移来创建一个数据库:php artisan make:migration create\u items\u table--create=“items” 在这里也很好:) 从理论上讲,当我制作:php artisan make:model

所以,我对此感到困惑: 在拉威尔的官方文件中,他们说:

Laravel附带的雄辩ORM提供了一个美丽、简单的 用于处理数据库的ActiveRecord实现。每个 数据库表有一个用于交互的对应“模型” 用那张桌子

好的,这里一切都很好,我明白了

所以我进行了一次迁移来创建一个数据库:php artisan make:migration create\u items\u table--create=“items”

在这里也很好:)

从理论上讲,当我制作:php artisan make:model Item时,Laravel将创建一个php类(用于与items表交互):

但是,在现实世界中,当我制作:php artisan make:model Item时,Laravel创建了php类(用于与items表交互)::

那么,为什么是模型而不是雄辩呢??我错过了什么吗? 口才模型和模型有什么区别

如果有区别,我应该在什么时候使用雄辩和什么时候使用模型


谢谢^ ^

Eloquent是Laravel附带的(对象关系映射)的名称。Eloquent允许您像对象一样与表交互,但是Eloquent不知道表上的实际列

让我们考虑简单的<代码>用户模型< /代码>。我们希望此模型能够查询

用户
表上的记录

class User extends Eloquent {

protected $table = 'users';
} 有一个非常简单的模型。现在,不要像这样询问

$user = DB::table('user')->find(1);
$user = User::find(1);
您可以这样查询

$user = DB::table('user')->find(1);
$user = User::find(1);
Eloquent本身使用自己的查询生成器,但确实会退回到标准查询生成器。这意味着它可以使用查询生成器上的所有方法,等等

这里的好处是:

  • 您不必在每次调用时都指定表名
  • 代码读起来好多了,它是语法上的糖分
  • 您可以在表之间创建复杂的关系,并使用即时加载
  • 您可以使用诸如批量分配保护和setters/getter之类的功能
我只谈了雄辩。还有很多。我建议您查看以下资源


我找到了问题的解决方案

因此,通常必须在config/app.php中添加别名

 'aliases' => [
        'Eloquent'  => Illuminate\Database\Eloquent\Model::class,

当你创建一个模型时,Laravel将
使用雄辩的语言
而不是
使用Illumb\Database\Eloquent\Model这就是为什么我认为,有些人可能会使用模型,而其他人可能会使用雄辩的,这只是给名称空间赋予意义的问题:3

你没有回答我的问题,我总是使用模型而不是简单的查询,如:DB::table('user')。。。我的问题是,为什么当我创建一个模型时,Laravel从模型扩展而不是从Eloquent扩展?是的,确切地说Laravel扩展到了不是从Eloquent扩展而来的模型。Laravel附带的Eloquent ORM使与数据库交互变得非常容易。阅读本文,当你可以定义或创建模型时。是的,我总是使用它,我也很了解如何使用它:)对不起,这也不能回答我的qst。。。但是我认为我找到了解决方案,请阅读我的答案…是的@elarib使用别名你也可以使用。thax a lot我刚刚注意到,默认情况下,extends Elount在Laravel 4中,而Laravel 5默认情况下制作extends Model…yap 5.1默认情况下也制作extends Model。你不需要添加这个。