奥丁9
奥丁9
后端
数据库
redis
mysql
mongoDB
达梦
php
laravel
laravel-admin
dcat
表单
表格
java
spring
python
go
c
c++
前端
vue
nodejs
sass/less
html/css
前端框架
javascript
微信生态
公众号
小程序
uniapp
typescript
其他
AI
数据结构
安全
linux
seo
git
健身
算法
正则表达式
docker
待分类
后端
/
php
/
laravel
laravel如何查出所有tags的关联文章数,并且解决n+1问题
1年前
aoding9
50
php
laravel
杂记
ai问答
要查出所有tags的关联文章数,并解决n+1问题,可以使用Laravel中的Eager Loading(预加载)来优化查询,减少查询次数。可以通过以下代码实现: ```php $tags = Tag::withCount('articles')->get(); ``` 在上面的例子中,我们使用withCount方法可以关联查询出所有的tags以及每个tag关联的articles数量。 另外,在Eager Loading中,还可以使用loadCount方法来针对单个模型进行预加载计数,例如: ```php $article = Article::with('tags')->get(); $article->loadCount('tags'); ``` 然后,在使用预加载结果时,可以像常规对象属性一样访问预加载的统计计数,例如: ```php @foreach($tags as $tag) <div>{{ $tag->name }} ({{ $tag->articles_count }})</div> @endforeach ``` 这样的话在遍历tag的时候就可以直接使用 $tag->articles_count 访问对应的关联数量,避免了n+1查询问题。
本作品采用
《CC 协议》
,转载必须注明作者和本文链接