【发布时间】:2016-12-08 06:52:32
【问题描述】:
我一直在研究 eloquent 的源代码,以了解它在预先加载指定的一个或多个关系时如何管理构建其数据结构,但我没有成功。
例如:
User has many photos, and a photo belongs to a User
- eloquent 如何执行其 SQL 查询?
- 它是否生成多个 SQL?一个查询来获取用户,然后另一个查询来获取他/她的照片,或者它是否执行单个查询。
我也有兴趣查看 SQL 的结构,因为我尝试了很多选项,但我绝对无法分辨每个字段属于哪些表,因为返回的结果只是简单的对象数组。
【问题讨论】:
-
实际上,laravel 会创建两个查询。一个用于获取用户,然后使用
in (user-ids)查询获取所有照片。然后映射在应用程序端完成。 sourcewith,如果你进一步追踪它的调用,你最终会得到here。也尝试激活DbQueryLogs,然后查看它触发了多少查询。 -
@BagusTesa 非常感谢,我认为您的评论可能是一个答案
-
不,几乎没有,无论如何解释 laravel 的魔力都需要很长的解释。希望有人详细说明。