我是 Laravel 的新手。因此,如果我可以使用 Schema builder 生成表,然后使用类似的查询来查询数据DB::table('user')->find(1)
,那么 Eloquent 适合整个场景的哪个位置?它的用途是什么?
问问题
2645 次
1 回答
7
Eloquent 是Laravel 附带的 ORM(对象关系映射)的名称。Eloquent 允许您与表进行交互,就好像它们是对象一样,但是 Eloquent 不知道您表中的实际列。
让我们考虑简单的User
模型。我们希望这个模型能够查询我们users
表上的记录。
class User extends Eloquent {
protected $table = 'users';
}
有一个非常简单的模型。现在,而不是像这样查询。
$user = DB::table('user')->find(1);
可以这样查询。
$user = User::find(1);
Eloquent 本身使用自己的查询构建器,但确实回退到标准查询构建器。这意味着它可以使用查询生成器上的所有方法,等等。
这里的好处是:
- 您不必在每次调用时都指定您的表名。
- 代码读起来好多了,它是语法糖。
- 您可以在表之间创建复杂的关系并使用预加载。
- 您可以使用批量分配保护和 setter/getter 等功能。
- 您还可以获得使用查询构建器的所有好处,因此您可以轻松地在 DBMS 之间切换。
我只提到了 Eloquent。它还有很多。我建议你看看以下资源。
于 2013-04-21T11:44:39.640 回答