Php 统计带有特定类别和标签的帖子laravel
我有3个型号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 =
贴子、标签和类别<代码>后期模型
和标记模型
与透视表存在多对多关系,后期模型
和类别模型
存在一对多关系
例如,假设我有以下标记和类别:
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();