livewire-datatables
livewire-datatables copied to clipboard
Multi table pagination
Resolves #496: Allow for independent query string pagination with multiple datatables on the same page
Function:
By using the WithMultiTablePaginator one can rely on the query string parameters to separately paginate multiple LivewireDatatable
's which are rendered on the same page.
Requirements:
Requires that the DataTableComponent use WithMultiTablePaginator;
and declare either a $pageName
or $name
property on the DataTableComponent.
class WorkInProgressDataTable extends LivewireDatatable
{
use WithMultiTablePaginator;
/// Requires declaration of $name
public $name = 'wip';
/// or declaration of
public $pageName = 'wipPage';
...
}
How it works:
- The WithMultiTablePaginator overrides all pagination related calls to ensure that it applies the
$pageName
or LivewireDatatable$name
properties. - It also ensures that calls to the
getResultsProperty()
also paginates based on the page related to$pageName
or LivewireDatatable$name
property.
Tests:
-- Work In Progress --
Discussion Points:
- Naming seems to be a bit off, maybe rename the trait to
WithCustomPaginator
? - There are no other Exceptions thrown by this plugin, instead of throwing an exception we can provide a default
$pageName
usingstatic::class
?
I like the idea with using Traits a lot, but shouldnt it be possible to use multiple tables on the same page by default without using a Trait ?
Hi all. Any update in this feature. It would really be awesome to have this implemented.