File: /var/www/html/xfacil.desafio.com.py/app/Http/Livewire/Panel.php
<?php
namespace App\Http\Livewire;
use Livewire\Component;
use DB;
use Carbon\Carbon;
use App\Models\Iniciologin;
use Maatwebsite\Excel\Facades\Excel;
use Livewire\WithPagination;
use App\Exports\LoginExport;
class Panel extends Component{
public $buscar='';
use WithPagination;
protected $paginationTheme = 'bootstrap';
public function render(){
$inicios=DB::table('iniciologins as il')
->join('users as u','il.usuario_id','u.id')
->select('il.*','u.name')
->where('u.name','LIKE','%'.$this->buscar.'%')
->paginate(20);
$ingresosemana=[];
$ingresomes=[];
$ingresoanho=[];
$fechas=[];
$dia=Carbon::now()->startOfWeek(Carbon::SUNDAY);
for ($i=0; $i < 7; $i++) {
$dato=Iniciologin::whereDate('created_at',Carbon::parse($dia)->toDateString())->count();
$ingresosemana[]=$dato;
$dia=Carbon::parse($dia)->addDay(1);
}
$primerdia = Carbon::now()->firstOfMonth();
$ultimodia = Carbon::now()->lastOfMonth();
for ($i=Carbon::parse($primerdia)->format('d'); $i <= Carbon::parse($ultimodia)->format('d'); $i++) {
$dato=Iniciologin::whereDate('created_at',Carbon::parse($primerdia)->toDateString())->count();
$ingresomes[]=$dato;
$fechas[]=Carbon::parse($primerdia)->format('d');
$primerdia=Carbon::parse($primerdia)->addDay(1);
}
for ($i=1; $i <= 12; $i++) {
$dato=Iniciologin::whereYear('created_at', Carbon::now()->format('Y'))
->whereMonth('created_at', $i)
->count();
$ingresoanho[]=$dato;
}
return view('livewire.panel',[
"inicios"=>$inicios,
"ingresosemana"=>json_encode($ingresosemana,JSON_NUMERIC_CHECK),
"ingresomes"=>json_encode($ingresomes,JSON_NUMERIC_CHECK),
"fechas"=>json_encode($fechas,JSON_NUMERIC_CHECK),
"ingresoanho"=>json_encode($ingresoanho,JSON_NUMERIC_CHECK)
]);
}
public function exportar(){
return Excel::download(new LoginExport, 'iniciosdesesion.xlsx');
}
}