1

简单的问题,但我似乎找不到答案......鉴于以下陈述:

$phone = User::find(1)->phone()->first();

根据 Laravel 的说法,这似乎会生成两个 SQL 语句,而不是使用 JOIN。在所有 PHP 框架中都是这样吗?铁轨呢?

4

1 回答 1

1

Laravel 确实使用额外的 SELECT 语句来获取相关模型,如果你打开 Profiler,你可以看到这些。我看到评论说它被认为比 JOIN 更有效,但我相信有更聪明的人可以解释为什么/为什么不。

我知道,如果您要获取大量相关数据(即在循环中),您应该考虑使用 Laravel 的 Eager Loading 功能来最小化查询。

于 2013-01-07T09:05:42.407 回答