我一直在研究雄辩的源代码,看看它是如何管理构建其数据结构的时候,只是指定了一个或多个指定的关系,但我还没有成功。
例如:
User has many photos, and a photo belongs to a User
我也有兴趣看到SQL的结构,因为我已经尝试了很多选项,并且绝对没有办法告诉每个字段属于哪些表,因为返回的结果只是普通的对象数组。
答案 0 :(得分:1)
当您尝试使用预先加载时,Laravel将至少创建两个查询。
例如,此代码:
$users = User::with('photos')->get();
将生成两个类似的查询:
select * from `users` where `users`.`deleted_at` is null
select * from `photos` where `photos`.`user_id` in ('1', '2', ... '99')
如果您想更好地了解原始SQL查询的外观,我建议您使用Laravel Debugbar。
有时在toSql()
工具中使用php artisan tinker
也很有帮助:
\App\User::where('id', 2)->toSql()