Laravel 防止使用有说服力的模型对象

Laravel 防止使用有说服力的模型对象,laravel,eloquent,Laravel,Eloquent,我想了解在这种情况下使用toArray()方法会发生什么: Ad::query()->with('nominations')->where(['id'=>$id])->get()->toArray(); Eloquent阻止集合的构造和单个模型对象的水合作用,并直接返回一个数组,或者Eloquent首先水合集合和模型对象,然后将所有内容转换为一个数组(从而执行额外的操作) 如果答案是第二个,我怎样才能得到第一个有口才的行为呢 我以雄辩的方式指定,因为如果能够继续以

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

Ad::query()->with('nominations')->where(['id'=>$id])->get()->toArray();
Eloquent阻止集合的构造和单个模型对象的水合作用,并直接返回一个数组,或者Eloquent首先水合集合和模型对象,然后将所有内容转换为一个数组(从而执行额外的操作)

如果答案是第二个,我怎样才能得到第一个有口才的行为呢


我以雄辩的方式指定,因为如果能够继续以抽象的方式引用实体,而不在代码中提及特定的数据库功能(例如表的名称),这将是一件好事。

回答您的两个问题。第二种情况将会发生。你不能雄辩地创建一个数组,你可以把一个对象或集合转换成一个数组

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

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