为了账号安全,请及时绑定邮箱和手机立即绑定

在 laravel 雄辩的关系中渴望加载多对多(检索所有带有分配标签的帖子)

在 laravel 雄辩的关系中渴望加载多对多(检索所有带有分配标签的帖子)

PHP
不负相思意 2023-04-21 15:30:00
我的博客 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 视图与逻辑合并。


查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信