php - 在 laravel 中为博客类别创建计数器
问题描述
我正在为我的博客类别创建一个计数器。这应该出现在我的类别的右侧名称一侧。我正在使用带有变量附加的模型,之后我将在刀片中使用它以在一个跨度内显示我的结果。但我不太清楚如何在我的模型中使用计数。我在我的模型博客中这样做。
我的变量追加包含:
protected $appends = [
'custom_fields',
'has_media',
'restaurant',
'blog_category',
'viewer',
'postCounter',
];
我正在处理这个:
return $this->blogs()->count();
我在 blog 和 blog_category 之间有关系:
public function blogCategory()
{
return $this->belongsTo(\App\Models\BlogCategory::class, 'blog_category_id', 'id');
}
我想在我的视图中出现例如:
innovation (2)
在我看来,我正在这样做:
@foreach($categories as $category)
<li><a href="{{ url('blogs/'.$category->name) }}">{{ trans('web.blog_category_'.$category->name) }}</a><span>{{$category->postCounter}}</span></li>
@endforeach
但总是返回 0,而且我有类别的帖子
更新
解决方案
使用laravel 关系 withCount
,您可以轻松地做到这一点。如果你想计算一个关系的结果数而不实际加载它们,你可以使用 withCount 方法,它会{relation}_count
在你的结果模型上放置一列。
withCount
向您的查询添加方法
$categories = Category::withCount('blogCategory')->get();
您可以在 foreach 循环中访问计数
// $category->blogCategory_count
@foreach($categories as $category)
<li>
<a href="{{ url('blogs/'.$category->name) }}">
{{trans('web.blog_category_'.$category->name) }}
</a>
<span>{{$category->blogCategory_count}}</span>
</li>
@endforeach
推荐阅读
- javascript - 如何记录只有原始值的对象?
- node.js - 如何手动修复 npm 漏洞?
- javascript - 类型“{}”上不存在属性“xxx”
- php - 当 WordPress 中没有帖子缩略图时,将默认图像显示为 div 背景
- java - 为什么我要在 Java 中使用 AOT 编译?
- c# - 删除动态创建的 PictureBox 时出错
- c# - 在 DataGrid 中更改页面索引后,全局变量失去其值
- tensorflow - 创建新会话如何影响 TensorFlow 中变量的初始化?
- ios - 迅速; 来自 UNUserNotificationCenter 的 HTTP 请求不起作用:Internet 连接似乎处于脱机状态
- html-table - 使用 Handlebars 为表格内的按钮添加引导弹出窗口管理