Livewire Companion is a set of components based on Laravel Livewire, to get you quickly up and running for recurring tasks.
All components use the brilliant Tailwind CSS. 🚀
Currently included components are:
- Datatable
- Search over one column
- Sorting of columns
- Pagination
- Indicators for pages and total records
- Items per page
- Map (coming soon)
You can install the package via composer:
$ composer require codedge/livewire-companion
The package will automatically register itself. Then publish the assets (configuration and templates):
$ php artisan vendor:publish --provider="Codedge\LivewireCompanion\LivewireCompanionServiceProvider"
This is going to publish all templates to resources/views/vendor/livewire-companion
. Feel free to modify to your needs.
The datatable component support both, Eloquent collections and Support collections.
Create a new file at app/Http/Livewire/MyTable.php
:
<?php declare(strict_types=1);
// ...
use Codedge\LivewireCompanion\Components\Datatable;
class MyTable extends Datatable
{
protected $model = User::class;
// ...
}
The Livewire component needs to inherit the Datatable
class. Then make sure you configure the component as you like:
$model
: Specify the model class, mandatory$perPageOptions
: Available options show items per page, default:5, 10, 25
$searchingEnabled
: Enable/Disable searching, default:true
$sortingEnabled
: Enable/Disable sorting, default:true
$template
: Overwrite Datatable template path, default:vendor.livewire-companion.datatable
If you miss any component or want to extend functionality and/or fixing bugs - feel free to submit a PR. I happily merge it in.