为什么这两行代码在抓取相同的数据时会提供不同的集合集呢?

How come these two lines of code provide different sets of collections when they are grabbing the same data?

我一直在尝试 Laravel 5 作为 Spring 启动设置的替代方法。

$employees = App\Employee::all();

$employees = DB::table('employees')->get();

我读到这两行代码做的事情完全一样,从我的 'employees' table 中检索所有记录。这在某种程度上是正确的,但是第一行虽然更加简洁明了,但提供了一个更加冗长和嵌套的集合,表示相同数量的记录

Employee {#180 ▼
      #connection: null
      #table: null
      #primaryKey: "id"
      #keyType: "int"
      +incrementing: true
      #with: []
      #perPage: 15
      +exists: true
      +wasRecentlyCreated: false
      #attributes: array:3 [▶]
      #original: array:3 [▶]
      #casts: []
      #dates: []
      #dateFormat: null
      #appends: []
      #events: []
      #observables: []
      #relations: []
      #touches: []
      +timestamps: true
      #hidden: []
      #visible: []
      #fillable: []
      #guarded: array:1 [▶]
    }

对比

{#173 ▼
      +"id": 3
      +"username": "deren"
      +"password": "noob"
    }

对于第一个集合,与第二个集合相同的信息包含在原始内容中。两者之间有什么区别?为什么通过 Eloquent 的第一个查询包含更多的元数据?我觉得它与它提供的口才(请原谅双关语)相矛盾,尤其是考虑到我不知道如何访问原始数组中的数组。如果有所不同,我正在使用 dd() 转储包含集合的变量。

$employees = App\Employee::all();

这会读取数据库 table,将每一行变成特定模型 class 的一个实例,并 returns 它们及其所有添加的属性、方法等。

$employees = DB::table('employees')->get();

这会读取数据库 table 并将每一行转换为标准 class。它不知道模型。