mfrouh / datatable-livewire
datatable livewire
1.2
2021-05-25 15:05 UTC
This package is auto-updated.
Last update: 2024-09-09 08:16:20 UTC
README
composer require mfrouh/datatable-livewire
此包使用Laravel、livewire、tailwind和alpinejs构建
创建 Livewire DataTable
php artisan make:datatable user
php artisan make:datatable backend.user
php artisan make:datatable backend/user
将保存在文件夹 App\Http\livewire\DataTables 中
添加到 Blade
@livewire('datatable.backend.user') for backend.user @livewire('datatable.admin.backend.user') for admin/backend/user
backend\user 将是 App\Http\livewire\DataTables\Backend\User.php
backend.user 将是 App\Http\livewire\DataTables\Backend\User.php
user 将是 App\Http\livewire\DataTables\User.php
数据表代码
<?php namespace App\Http\Livewire\Datatables; use MFrouh\DataTable\Datatables\Datatables; use App\Models\User; class User extends Datatables { /** * add model */ public $model = User::class; /** * query builder * */ public function queryBuilder() { return $this->model::query(); } /** * 'method_name or route()' => 'permission', * ex 'create' => 'create post', * */ public array $tablePermissions = []; /** * add columns in array * */ public function columns(): array { return []; } /** * add actions in array * */ public function actions(): array { return []; } }
操作
public function actions(): array { return [ Action::header()->events(['action' => 'label']), Action::header()->urls(['action' => 'label']), Action::action()->events(['action' => 'label']), Action::action()->urls(['action' => 'label']) ]; }
列
['TextColumn','NumberColumn','ImageColumn','PriceColumn', 'DateTimeColumn','LabelColumn','LangColumn','MinuteColumn', 'PercentageColumn']
public function columns(): array { return [ TextColumn::name('name')->label('label')->sortable()->searchable(), NumberColumn::name('name')->label('label')->sortable()->searchable(), MinuteColumn::name('name')->label('label')->sortable()->searchable(), PercentageColumn::name('name')->label('label')->sortable()->searchable(), LangColumn::name('name')->filename('filename')->label('label'), DateTimeColumn::name('name')->format(format')->label('label')->sortable()->searchable(), ]; }