【发布时间】:2012-12-20 23:42:08
【问题描述】:
简单的问题,但我似乎找不到答案... 鉴于以下陈述:
$phone = User::find(1)->phone()->first();
根据 Laravel 的说法,这似乎会生成两个 SQL 语句,而不是使用 JOIN。在所有 PHP 框架中都是这样吗?铁轨呢?
【问题讨论】:
标签: ruby-on-rails orm laravel eloquent
简单的问题,但我似乎找不到答案... 鉴于以下陈述:
$phone = User::find(1)->phone()->first();
根据 Laravel 的说法,这似乎会生成两个 SQL 语句,而不是使用 JOIN。在所有 PHP 框架中都是这样吗?铁轨呢?
【问题讨论】:
标签: ruby-on-rails orm laravel eloquent
Laravel 确实使用额外的 SELECT 语句来获取相关模型,如果你打开 Profiler,你可以看到这些。我看到评论说它被认为比 JOIN 更有效,但我相信有更聪明的人可以解释为什么/为什么不。
我知道,如果您要获取大量相关数据(即在循环中),您应该考虑使用 Laravel 的 Eager Loading 功能来最小化查询。
【讨论】: