Beberapa waktu yang lalu penulis mendapat sebuah kasus di project Laravel dengan Filament. Salah satu Resource yang ada, perlu menampilkan halaman tertentu saat pertama kali dibuka. Let’s say hari ini ada di minggu ke 38, maka Resource tersebut saat pertama kali dibuka harus lompat ke halaman 38.
Untuk mencapai tujuan tersebut, kita harus menambahkan beberapa kode di kelas ListRecords (bila Resource bernama Bucket, maka class tersebut akan bernama ListBuckets). Teknik ini belum teruji di Resource yang dibuat dengan flag --simple
saat di generate.
Langkah pertama, tambahkan method mount()
di kelas tersebut. Method ini merupakan method lifecycle yang akan dipanggil setiap halaman tabel di load pertama kali. Penulis tidak yakin apakah method ini diturunkan dari parent class-nya saja atau didapat dari livewire.
class ListBuckets extends ListRecords
{
public function mount(): void
{
}
}
Setiap ListRecords ternyata memiliki method setPage
yang dipakai untuk mengubah halaman yang sedang diakses. Oleh karena itu, kita tinggal memanggil method ini untuk mengubah default halaman yang ingin dibuka setiap mengakses halaman Resource tertentu.
public function mount(): void
{
$this->authorizeAccess();
$this->loadDefaultActiveTab();
// Mengambil minggu sekarang
$dateNow = date('Y-m-d');
$weekNumber = date("W", strtotime($dateNow));
$this->setPage($weekNumber); // Mengubah halaman
}
Pada contoh kode di atas, bagian yang paling penting untuk mengubah halaman adalah baris yang terakhir.
Tinggalkan Balasan