HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/8.0.30
System: Linux multiplicar 3.10.0-1160.102.1.el7.x86_64 #1 SMP Tue Oct 17 15:42:21 UTC 2023 x86_64
User: root (0)
PHP: 8.0.30
Disabled: NONE
Upload Files
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');
    }
}