Я использую Laravel Maatwebsite \ Excel для экспорта времени входа и выхода пользователя, но мне нужно добавить строку Actual Time, чтобы рассчитать время между входом и выходом из системы. Я делаю таблицу, чтобы получить все это время, и она работает очень хорошо, Как я могу экспортировать Excel как ту же самую таблицу HTML, Любая помощь, пожалуйста. class UsersExport:
use Exportable;
protected $userexport;
public function __construct($userexport = null)
{
$this->userexport = $userexport;
}
/**
* @return \Illuminate\Support\Collection
*/
public function collection()
{
// return UserLoginHistory::all();
return $this->userexport;
}
public function headings(): array
{
return [
'Name',
'Department',
'Login',
'Logout',
'Actual Time',
];
}
Контроллер экспорта:
public function exportbydate(Request $request)
{
$from =new Carbon( $request->StartDate);
$to =new Carbon( $request->EndDate);
$userexport= DB::table('_user_login_history')
->join('users','users.id','_user_login_history.user_id')
->join('departs','departs.id','users.dep_id')
->where('user_id',Auth::user()->id)
->whereBetween('_user_login_history.login_at', [$from->format('Y-m-d')." 00:00:00", $to->format('Y-m-d')." 23:59:59"])
->select('name',
'departname',
'login_at',
'logout_at',
'Actual Time'
)
->get();
return(new UsersExport($userexport))->download('user.xlsx');
}
Я создаю HTML таблицу, которая имеет то же самое, но работает хорошо.
<table class="basic-table">
<tbody><tr>
<th>Login</th>
<th>Logout</th>
<th>Actual Time</th>
</tr>
@foreach($mytimesM as $mytim)
<tr>
<td data-label="Column 1">{{ date('d M y, h:i a', strtotime($mytim->login_at)) }}</td>
<td data-label="Column 2">{{ date('d M y, h:i a', strtotime($mytim->logout_at)) }}</td>
<td data-label="Column 3">{{ date_diff(new \DateTime($mytim->login_at), new \DateTime($mytim->logout_at))->format("%d day, %h Hrs, %i Min,%s sec") }}</td>
</tr>
@endforeach
</tbody></table>