2

我是 Laravel 的新手。因此,如果我可以使用 Schema builder 生成表,然后使用类似的查询来查询数据DB::table('user')->find(1),那么 Eloquent 适合整个场景的哪个位置?它的用途是什么?

4

1 回答 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 本身使用自己的查询构建器,但确实回退到标准查询构建器。这意味着它可以使用查询生成器上的所有方法,等等。

这里的好处是:

  1. 您不必在每次调用时都指定您的表名。
  2. 代码读起来好多了,它是语法糖。
  3. 您可以在表之间创建复杂的关系并使用预加载。
  4. 您可以使用批量分配保护和 setter/getter 等功能。
  5. 您还可以获得使用查询构建器的所有好处,因此您可以轻松地在 DBMS 之间切换。

我只提到了 Eloquent。它还有很多。我建议你看看以下资源。

于 2013-04-21T11:44:39.640 回答