有一个类别的用户$参加分组的用户,没有,分组有开始时间$ start_time和结束$ end_time,我需要推断在特定日期分组的用户数量范围,但我没有知道如何编写最后一个条件以及如何将dateRange链接到用户,因为它们属于groups参数。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use app\Group;
use app\Participants;
use Carbon\Carbon;
class ParticipantCounts extends Controller
{
public function ParticipantCountsWithGroups()
{
$participants = $Participants::has('groups')->get();
$dateRange = "DD.MM.YY-DD.MM.YY";
$splitTimeStamp = explode("-", $dateRange);
$start_time = $splitTimeStamp[0];
$end_time = $splitTimeStamp[1];
Carbon::parse($start_time)->format('Y-m-d');
Carbon::parse($end_time)->format('Y-m-d');
$participants->where(function($query)
{
$query->where('start_date')->whereBetween('end_date');
})->orWhere(function($query))
{
$query->where('end_time')->whereBetween('end_time');
}
}
}
答案 0 :(得分:0)
以下应为您提供group_id以及该组中日期范围内的特定计数。
Participants::join('groups', 'groups.id', '=', 'participants.group_id')
->select('participants.group_id', \DB::raw('count(*) as participant_count'))
->where('groups.start_time', '>=', $startDate)
->where('groups.end_time', '<=', $endDate)
->groupBy('participants.group_id')
->get();