У меня проблема, что я не понимаю, почему это так.
это код:
function getHours($project_id, $project_startDate, $project_endDate)
{
$project = Project::find($project_id);
$users = $project->users()->get();
$start_date = $project_startDate;
$end_date = $project_endDate;
foreach ($users as $user) {
$timesheetHours = $user->timesheets()->whereBetween('date', [$start_date, $end_date])->get()->sum('hours');
}
return $timesheetHours;
}
У меня есть 2 пользователя, и у них обоих разные часы, но они показывают одинаковые часы им всем. перепробовал много способов, даже для того, чтобы предвидеть timeheetHours (код ofc не был похож на выше). куда я скучаю?
Вы перезаписываете переменную $timesheetHours
во втором цикле вы должны использовать массив.
foreach ($users as $user) {
$timesheetHours[] = $user->timesheets()->whereBetween('date', [$start_date, $end_date])->get()->sum('hours');
}
return $timesheetHours;
Здесь вы должны сначала инициализировать значение, а затем для каждого пользователя, к которому вы добавляете сумму:
$timesheetHours = 0;
foreach ($users as $user) {
$timesheetHours += $user->timesheets()->whereBetween('date', [$start_date, $end_date])->get()->sum('hours');
}