Всего часов 1 пользователя показано на каждого пользователя PHP Laravel

У меня проблема, что я не понимаю, почему это так.
это код:

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 не был похож на выше). куда я скучаю?

0

Решение

Вы перезаписываете переменную $timesheetHours во втором цикле вы должны использовать массив.

 foreach ($users as $user) {
$timesheetHours[] = $user->timesheets()->whereBetween('date', [$start_date, $end_date])->get()->sum('hours');
}
return $timesheetHours;
0

Другие решения

Здесь вы должны сначала инициализировать значение, а затем для каждого пользователя, к которому вы добавляете сумму:

$timesheetHours = 0;
foreach ($users as $user) {
$timesheetHours += $user->timesheets()->whereBetween('date', [$start_date, $end_date])->get()->sum('hours');
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector