Simple Laravel Livewire datatable! You can easily manage data with one library!
composer require devaweb/livewire-data-table
Configuration properties!
Add the table model class of the table you want to manage! It is required!
@livewire('livewire-data-table', [
'model' => \App\Models\User::class
])
For initial setup, you must add some columns here as an array!
After then you can manage columns in Livewire data table GUI!
@livewire('livewire-data-table', [
'model' => \App\Models\User::class,
'columns' => ['id','name','email','role']
])
Add sortable columns (ASC or DESC) It's also you can manage in GUI!
@livewire('livewire-data-table', [
'model' => \App\Models\User::class,
'columns' => ['id','name','email','role'],
'sortable' => ['id']
])
Add searchable columns! It's also you can manage in GUI!
If it is empty, you can't search for anything!
@livewire('livewire-data-table', [
'model' => \App\Models\User::class,
'columns' => ['id','name','email','role'],
'searchable' => ['id','name','email']
])
Add editable columns! It enables the inline edit of the data for that column.
It's also you can manage in GUI!
$editable => [
'name' => [
// text | textarea | select
'inputtype' => 'text'
// options used in input type 'select'
'options' => ['Jo', 'vwe', 'so']
]
];
@livewire('livewire-data-table', [
'model' => \App\Models\User::class,
'columns' => ['id','name','email','role'],
'searchable' => ['id','name','email'],
'editable' => $editable
])
It is determined how many rows want to display in the table per page!
It's also you can manage in GUI!
@livewire('livewire-data-table', [
'model' => \App\Models\User::class,
'columns' => ['id','name','email','role'],
'searchable' => ['id','name','email'],
'editable' => $editable,
'perPage' => 15 // default value is 15
])
Livewire component for adding new data to the table!
$addNew = [
'component' => 'add-new-user' // your component name
'params' => []
];
@livewire('livewire-data-table', [
'model' => \App\Models\User::class,
'columns' => ['id','name','email','role'],
'searchable' => ['id','name','email'],
'editable' => $editable,
'perPage' => 15
'addNew' => $addNew
])
This property determines whether or not to show the area with customizable options!
Default is TRUE.
@livewire('livewire-data-table', [
'model' => \App\Models\User::class,
'columns' => ['id','name','email','role'],
'searchable' => ['id','name','email'],
'editable' => $editable,
'perPage' => 15
'addNew' => $addNew
'customizable' => true
])
Made with by Deva
Build with Laravel, TailwindCSS, Livewire and AlpineJS