所以,我对此感到困惑: 在Laravel的官方文档中,他们说:
Laravel附带的Eloquent ORM提供了一个美丽,简单的 用于处理数据库的ActiveRecord实现。每 数据库表具有相应的“模型”,用于交互 那张桌子。
Ok util这里一切都很棒,我明白了!
所以我进行迁移以创建数据库: php artisan make:migration create_items_table --create =“items”
直到这里也很棒:)
所以从理论上讲,当我做: php artisan make:model Item 时,Laravel会创建一个php类(用于与items表交互):
class Item extends Eloquent {
...
}
但是,在现实世界中,当我制作: php artisan make:model Item 时,Laravel创建php类(用于与items表交互)::
class Item extends Model {
...
}
为什么模型而不是雄辩?我错过了吗? Eloquent Model和Model之间有什么区别。
如果存在差异,我应该何时使用Eloquent和模型......?
谢谢^^
答案 0 :(得分:8)
我找到了问题的解决方案......
通常,您必须在config / app.php
中添加别名 'aliases' => [
'Eloquent' => Illuminate\Database\Eloquent\Model::class,
当你创建一个模型时,Laravel会use Eloquent;
而不是use Illuminate\Database\Eloquent\Model;
这就是为什么我认为,有些人可能会使用模型,当其他人可能使用Eloquent时,它只是一个赋予意义感的问题命名空间:3
答案 1 :(得分:1)
Eloquent是Laravel附带的ORM(对象关系映射)的名称。 Eloquent允许您与表进行交互,就像它们是对象一样,但是Eloquent并不知道您桌面上的实际列。
让我们考虑简单的User model
。我们希望此模型在users
表上查询记录。
class User extends Eloquent {
protected $table = 'users';
} 那是一个非常简单的模型。现在,而不是像这样查询。
$user = DB::table('user')->find(1);
您可以这样查询。
$user = User::find(1);
Eloquent本身使用自己的查询构建器,但确实回退到标准查询构建器。这意味着它具有查询构建器上的所有方法,以及更多。
这里的好处是:
我只触及过Eloquent。它还有很多东西。我建议你看看以下资源。