我的博客 laravel 项目有很多帖子,每个帖子都属于很多标签。现在我想检索所有博客及其标签并回显每个标签。这是我写的代码。有没有更好的办法?$posts = Post::with('tags')->get(); foreach ($posts as $post) { foreach ($post->tags as $tag) { echo "<pre> $tag->name </pre>"; } } die();
1 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
Eager loading
您可以像在代码中一样获取所有标签。
$posts = App\Post::with('tags:name')->get();
foreach ($posts as $post) {
foreach ($post->tags as $tag) {
echo "<pre> $tag->name </pre>";
}
}
这是正确的解决方案。
您甚至可以通过DB查询来完成它以使其更快,但可能您的方式就足够了。
$posts = App\Post::all()->pluck('id');
return DB::select('SELECT name FROM tags WHERE id in (' . implode(',', $posts) . ')');
最后提示:不要将 HTML 视图与逻辑合并。
- 1 回答
- 0 关注
- 91 浏览
添加回答
举报
0/150
提交
取消