Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/warga-saya.aplikasipos.info/app/Livewire/
Upload File :
Current File : /home/aplikasiposinfo/www/warga-saya.aplikasipos.info/app/Livewire/KategoriView.php

<?php

namespace App\Livewire;

use Livewire\Component;
use App\Models\Civilian;
use App\Models\Category;
use Livewire\WithPagination;

class KategoriView extends Component
{
    use WithPagination;

    public $selectedCategory = '';
    public $searchName = '';
    public $perPage = 10;
    public $appliedCategory = '';
    public $appliedSearch = '';

    public function applyFilter()
    {
        $this->appliedCategory = $this->selectedCategory;
        $this->appliedSearch = $this->searchName;
        $this->resetPage();
    }

    public function resetFilters()
    {
        $this->reset(['selectedCategory', 'searchName', 'appliedCategory', 'appliedSearch']);
        $this->resetPage();
    }

    public function exportToExcel()
    {
        session([
            'laporan_kategori_filter' => [
                'category_id' => $this->appliedCategory,
                'search' => $this->appliedSearch,
            ]
        ]);

        $this->dispatch('triggerExcelDownload');
    }

    public function render()
    {
        $civilians = Civilian::query()
            ->with('categories')
            ->when($this->appliedCategory, function ($query) {
                $query->whereHas('categories', function ($q) {
                    $q->where('categories.id', $this->appliedCategory);
                });
            })
            ->when($this->appliedSearch, function ($query) {
                $query->where('full_name', 'like', '%'.$this->appliedSearch.'%');
            })
            ->paginate($this->perPage);

        return view('livewire.kategori-view', [
            'civilians' => $civilians,
            'categories' => Category::all()
        ]);
    }
}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]