我想了解在这种情况下使用toArray()方法会发生什么:
Ad::query()->with('nominations')->where(['id'=>$id])->get()->toArray();
Eloquent可以防止构造集合和单个模型对象的水合并直接返回一个数组或雄辩首先对集合和模型对象进行水合,然后将所有内容转换为数组(从而进行额外的操作)?
如果答案是第二个,我怎样才能以口才的方式获得第一个行为?
我用eloquent指定,因为能够通过继续以抽象的方式引用实体而不提及代码中的特定数据库功能(例如表的名称)来做到这一点是很好的。
答案 0 :(得分:1)
回答你的问题。第二个将发生。你不能让Eloquent创建一个数组,你只需将一个对象或集合转换为一个数组。
此外,您的查询有很多冗余代码,您可以这样做:
Ad::with('nominations')->find($id)->toArray()