FilamentF
Filament13mo ago
Prodex

Overriding paginateTableQuery doesn't work on Widgets

The TableWidet Class has a paginateTableQuery method where simplePagination is used. The docs say, this can be overwritten. But using the method in my Widget doesn't work. It still shows the simplePagination.

With dd() I can verify that the method gets called though. Any ideas?

Code:

use Filament\Widgets\TableWidget;
use Illuminate\Contracts\Pagination\CursorPaginator;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;

class CompanyProximitySearch extends TableWidget
{
    public ?Model $record = null;

    protected int|string|array $columnSpan = 'full';

    protected function paginateTableQuery(Builder $query): CursorPaginator
    {
        return $query->cursorPaginate(($this->getTableRecordsPerPage() === 'all') ? $query->count() : $this->getTableRecordsPerPage());
    }
}
Solution
Yes I see, but in that case the paginateTableQuery is set to simple when extending the TableWidget. Changing it to extend "Widget" solves the issue. But I still don't know why the overwrite didn't work, as it normally should.
Was this page helpful?