【发布时间】:2023-01-19 03:21:57
【问题描述】:
我在通过按列对元素进行分组来创建包含另一个表中元素计数的查询时遇到问题。
我试着用这个例子来解释这个问题:
表帖
| id | Title |
|---|---|
| 1 | first |
| 2 | second |
表格视图
| id | post_id | view_id |
|---|---|---|
| 1 | 1 | 1 |
| 2 | 1 | 1 |
| 3 | 2 | 1 |
| 4 | 2 | 1 |
| 5 | 1 | 2 |
| 6 | 1 | 2 |
后模型
class Post extends Model{
protected $table = 'post';
protected $primaryKey = 'id';
protected $fillable = [
'title'
];
public function related_views(){
return $this->hasMany(Views::class, 'post_id', 'id');
}
}
视图模型
class Views extends Model{
protected $table = 'views';
protected $primaryKey = 'id';
protected $fillable = [
'post_id',
'view_id'
];
}
询问
$query = Post::with([
'related_views' => function ($query) {
return $query->groupBy('view_id');
}
])
->withCount('related_views')
->get();
查询已正确执行。在返回的多维数组中,除了主表中的列外,还有以下 2 个值:related_views 和 related_views_count。
related_views_count 变量对所有元素进行计数,而 related_views 变量仅按分组显示元素。
是否可以获取 related_views 变量中元素的计数而不是获取元素数组?
我希望我已经正确地陈述了我的问题。
【问题讨论】:
标签: jquery mysql laravel eloquent eloquent-relationship