php - Laravel 将数据计数附加到数据库对象

标签 php mysql laravel

你好,我有这个功能

public function readData(){
$TableB1 = \DB::table('users')
->join('group_user', 'users.id', '=', 'group_user.user_id')
->join('groups', 'groups.id', '=', 'group_user.group_id')
->join('meetings', 'users.id', '=', 'meetings.owned_by_id')
->select(
   'users.name as name',
   'group_user.user_id as id',
   'groups.name as groupname',
    )
->get();
foreach ($TableB1 as &$data){
    $meetings = \DB::table('meetings')
                ->where('company_id', 1)->where('owned_by_id', $data->id)
                ->where(\DB::raw('MONTH(created_at)'), Carbon::today()->month);
    echo $meetings->count();
}

return $TableB1;

}

我从数据库检索一些数据并返回它们并使用 AJAX 调用稍后使用它们

问题是我有一个名为“用户”的表和一个名为“ session ”的表

我想知道每个用户每天参加多少次 session

因此,为了做到这一点,我为每个人创建了一个来获取user_id并使用它来获取计数 每个用户完成的 session 次数

例如,在 session 表中,我有一个 owned_by_id 字段,其中包含 user_id

如果代码发现 owned_by_id(6)

中重复,它会做什么

session 表4次就会返回4

但这就是我在浏览器中得到的

相反,我想要得到的是这样的

我正在使用 Laravel 5.7,抱歉,我知道我的问题不清楚,这是我第一次在 stackoverflow 上提出问题 Image

最佳答案

如果你想要 session 计数,那么你可以使用 laravel eloquent 方法:withCount();

像这样:

$users = User::with('meetings')->withCount('meetings')->get();

如果您这样做,那么您将获得带有用户对象的meetings_count。

如果您仍有任何疑问,可以引用以下链接:

https://laravel.com/docs/5.8/eloquent-relationships

谢谢你!

关于php - Laravel 将数据计数附加到数据库对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55039523/

相关文章:

javascript - 需要每行总值并且应显示在行末尾

php - 最大员工工作时间的 MySQL 子查询

php - 删除空格后选择唯一数据

php - 数组不会填充 while 循环

mysql - 执行 SQL 脚本以创建表和行

php - Laravel 存储库模型中的 API 调用

php - 使用 RecursiveDirectoryIterator 对目录列表进行排序

php - 从后端角度看 php 中的 Flux 架构

Laravel:我应该在循环内使用 @include 吗?

php - Laravel 5.0 Session 不能使用静态方法