【问题标题】:Prevent hydration model objects with eloquent用 eloquent 防止水化模型对象
【发布时间】:2018-02-23 05:49:52
【问题描述】:

我想了解在这种情况下使用 toArray() 方法会发生什么:

Ad::query()->with('nominations')->where(['id'=>$id])->get()->toArray();

Eloquent 阻止了集合的构建和单个模型对象的水合,直接返回一个数组或者 eloquent 先水合集合和模型对象,然后将所有内容转换成数组(从而做了额外的操作)?

如果答案是第二个,我怎样才能通过 eloquent 获得第一个行为?

我用 eloquent 指定,因为如果能够通过继续以抽象方式引用实体而不在代码中提及特定的数据库功能(例如表的名称)来做到这一点,那就太好了。

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

    回答您的两个问题。第二个会发生。而且你不能让 Eloquent 创建一个数组,你可以将一个对象或集合转换为一个数组。

    另外,您的查询有很多冗余代码,您可以这样做:

    Ad::with('nominations')->find($id)->toArray()
    

    【讨论】:

      猜你喜欢
      • 2018-08-17
      • 2019-07-26
      • 2015-03-28
      • 2016-10-15
      • 2021-08-16
      • 2018-03-20
      • 1970-01-01
      • 2014-06-07
      • 2013-08-25
      相关资源
      最近更新 更多