FilamentF
Filament13mo ago
Rojak

filters with relation date

iam using custom page for my report page, then i add date range filter on report page using relation data "tgl_penjualan" from other table. It work fine on Columns and DefaultSort but always error on Filters. At first it says column not found everytime i pick date, then after some tinkering it doesnt show any error when pick date but the data on table stay the same not filtered. Below is my current table code "LaporanJual.php" in App/Filament/Pages

 public static function table(Table $table): Table
   {return $table
      ->query(TransaksiKeluarItem::query()
        ->join('transaksi_keluars', 'transaksi_keluar_items.transaksi_keluar_id', '=', 'transaksi_keluars.id')
         ->select(
            'transaksi_keluars.tgl_penjualan as Tanggal', 
            'transaksi_keluar_items.id as item_id', 
            'transaksi_keluar_items.*' 
                )
            )
            ->columns([...])
            ->defaultSort('Tanggal', 'desc')
            ->filters([
                DateRangeFilter::make('Tanggal')
                ->query(function ($query) {
                    $filter = request()->all(); 
                    if (isset($filter['start']) && isset($filter['end'])) {
                        $startDate = Carbon::parse($filter['start']);
                        $endDate = Carbon::parse($filter['end'])->endOfDay(); 
                        
                        $query->whereBetween('transaksi_keluars.tgl_penjualan', [
                            $startDate,
                            $endDate,
                        ]);
                    }
                }),
            ]);
    }
Was this page helpful?