Php 统计带有特定类别和标签的帖子laravel

Php 统计带有特定类别和标签的帖子laravel,php,mysql,laravel,laravel-5.3,blade,Php,Mysql,Laravel,Laravel 5.3,Blade,我有3个型号贴子、标签和类别后期模型和标记模型与透视表存在多对多关系,后期模型和类别模型存在一对多关系 例如,假设我有以下标记和类别: tagname=php, category name=教程、项目、测试 具有上述属性的帖子数量=3[所有帖子都有不同的类别,相同的标签] 我试图统计帖子数量,并在名为archivephp的视图中显示类别名称,上面有类别和标签php 这就是我到目前为止所做的: 我在控制器中的方法 public function countTag() { $posts =

我有3个型号
贴子、标签和类别
<代码>后期模型
标记模型
与透视表存在多对多关系,
后期模型
类别模型
存在一对多关系

例如,假设我有以下标记和类别:

tagname=php,

category name=教程、项目、测试

具有上述属性的帖子数量=3[所有帖子都有不同的类别,相同的标签]

我试图统计帖子数量,并在名为
archivephp
的视图中显示类别名称,上面有类别和标签
php

这就是我到目前为止所做的:

我在控制器中的方法

 public function countTag()
{
    $posts = Post::whereHas('tag', function($r) {
            $r->where('name','=', "php");
        })->get();
    return view('archive-php')
           ->withPosts($posts)
}
查看我的代码:

@foreach ($posts as $post)
    <li><a href="#">{{ucfirst($post->category->name)}}</a>
         {{$post->count()}}
    </li>
@endforeach
@foreach($posts as$post)
  • {{$post->count()}
  • @endforeach

    上述代码成功显示相关类别名称(3个类别名称)
    dd($posts)转储3个数组,但统计数据库中的所有post。我在这里遗漏了哪一块拼图或它是不可能的?

    要实现这一点,您应该获得所有类别。然后获取/统计具有
    php
    标记的帖子

    1-方法

    $categories = Category::all();
    
    foreach($categories as $category) {
      $category->phpPosts = Post::where('category_id', '=', $category->id)->whereHas('tag', function($r) {
                $r->where('name','=', "php");
            })->get();
    }
    
    然后像这样使用它:

    @foreach ($categories as $category)
        <li><a href="#">{{ucfirst($category->name)}}</a>
             {{ $category->phpPosts->count() }}
        </li>
    @endforeach
    

    但我不确定这是否正确。尝试方法1。如果我没记错的话。

    你想统计一下[category]类型的[Post]中有[php]标签的[Post]的数量吗?是的,这就是我要做的。
    $categories = App\Category::with(['posts' => function ($query) {
        $query->whereHas('tag', function($r) {
                $r->where('name','=', "php");
            });
    }])->get();