上下文:我正在嘗試計算員工進行約會的總小時數,並在刀片視圖中顯示員工的總和。我可以成功地總結每個$ EmployeeHours的$ starts_at減$ ends_at日期的小時數。但是,當我dd();我只看到最後一個對象而不是集合。如何在循環foreach之後返回集合或數組數據以查看?
當我嘗試將數據發送到瀏覽在@foreach循環,我得到錯誤:
array_merge(): Argument #2 is not an array
當我保存到一個數據庫中的表,它成功地通過迭代和保存每個$ EmployeeHours我的期望。
問題是我不想將查詢結果保存到數據庫,我只想顯示到刀片服務器,因爲它只是一個用於提取用戶報告的查詢。
$EmployeeHours = DB::table('appointment_employee')
->join('appointments', 'appointment_id', '=', 'appointments.id')
->join('employees', 'employees.id', '=', 'appointment_employee.employee_id')
->join('users', 'users.id', '=', 'employees.user_id')
->where('role_id', '=', '1')
->get()->groupby('id');
$results=[];
foreach($EmployeeHours as $EmployeeHour)
{
$duration = [];
foreach($EmployeeHour as $collection)
{
$date1 = $collection->starts_at;
$date2 = $collection->ends_at;
$start = Carbon::parse($date1);
$end = Carbon::parse($date2);
$length = $start->diffInMinutes($end)/60;
$duration[] = $length;
}
$totalHours = array_sum($duration);
//I think here is where I am going wrong possibly
$results = [
'totalHours' => $totalHours,
'employee_name' => $collection->first_name. " ".$collection->last_name,
];
}
dd($EmployeeHour);
return view ('admin.invoices.reporting.employeeHours',$results);
這裏是刀片觀點
@foreach($results as $result)
<tr>
<td>{{ $result->employee_name }}</td>
<td>{{ $result->totalHours }}</td>
</tr>
@endforeach
我也試過沒有刀片foreach循環,並將其返回的最後一個對象I,E。
<tbody>
<tr>
<td>{{ $employee_name }}</td>
<td>{{ $totalHours }}</td>
</tr>
</tbody>
請附上您的問題與您的視圖中的相關代碼。 – user1960364
我已添加視圖代碼。試過2種方法。刀片中的foreach循環返回一個錯誤,大概是因爲我沒有返回一個集合。如果沒有foreach,那麼它會打印最後一個對象。但我想要一個數組。謝謝。 –