84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
查询文章列表同时查询文章的作者信息,如何关联查询,我写了一个用1对1的关系在模型了,在视图中调用,虽然可行,但是出来查询语句很多条查询作者的语句,怎么一次查询出来
闭关修行中......
像下边这样的查询和遍历,如果返回10条article数据,则一共会执行11次SQL语句,第一条是一次性查询所有10条article数据,另外每次遍历都会执行一次获取相应author数据的SQL查询(原因是Eloquent默认为Lazy Loading,访问关系数据的时候才进行查询操作)。
article
SQL
author
Eloquent
Lazy Loading
$articles = App\Article::all(); foreach ($articles as $article) { echo $article->author->name; }
如果使用 Eager Loading,像下边这样,则一次性执行一次SQL查询。
Eager Loading
$articles = App\Article::with('author')->get(); foreach ($articles as $article) { echo $article->author->name; }
短答案:你需要使用Eager Loading
长答案:
像下边这样的查询和遍历,如果返回10条
article
数据,则一共会执行11次SQL
语句,第一条是一次性查询所有10条article
数据,另外每次遍历都会执行一次获取相应author
数据的SQL
查询(原因是Eloquent
默认为Lazy Loading
,访问关系数据的时候才进行查询操作)。如果使用
Eager Loading
,像下边这样,则一次性执行一次SQL
查询。