詹姆斯多伊 / laravelvuedatatable
此包已被 废弃 并不再维护。未建议替代包。
关于此包最新版本(1.3.8)没有可用的许可证信息。
1.3.8
2020-09-15 13:35 UTC
Requires (Dev)
- orchestra/testbench: ^3.7
- phpunit/phpunit: ^7.5
README
一个用于Laravel的Vue.js表格组件,与Bootstrap兼容。
要求
此包使用了可选的默认组件,即由 gilbitron 创建的 Laravel Vue Pagination 组件。如果您需要其他区域的网站中的分页组件,并且使用Laravel API和Bootstrap,我强烈建议使用这个灵活的组件。
演示
请查看 https://jamesdordoy.github.io/laravel-vue-datatable/
目录
示例
包安装
$ composer require jamesdordoy/laravelvuedatatable
添加服务提供者
JamesDordoy\LaravelVueDatatable\Providers\LaravelVueDatatableServiceProvider::class,
发布配置
$ php artisan vendor:publish --provider="JamesDordoy\LaravelVueDatatable\Providers\LaravelVueDatatableServiceProvider"
包选项
[ 'models' => [ "alias" => "as", "search_term" => "searchable", "order_term" => "orderable", ], "default_order_by" => "id" ]
使用特性
此特性是可选的,它简单地提供了一个基于在模型中设置的 $dataTableColumns 属性的基本方法来过滤数据。如果您想对数据的过滤有更多控制,请随意省略此特性并使用您自己的过滤方法。只需记住分页结果!
<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; use JamesDordoy\LaravelVueDatatable\Traits\LaravelVueDatatableTrait; class User extends Authenticatable { use Notifiable, LaravelVueDatatableTrait; protected $dataTableColumns = [ 'id' => [ 'searchable' => false, ], 'name' => [ 'searchable' => true, ], 'email' => [ 'searchable' => true, ] ]; }
使用控制器资源
集合资源期望一个分页集合,所以如果您需要更复杂的过滤,可以自由地使用您自己的查询并省略提供的查询。
<?php namespace App\Http\Controllers; use App\User; use Illuminate\Http\Request; use JamesDordoy\LaravelVueDatatable\Http\Resources\DataTableCollectionResource; class UserController extends Controller { public function index(Request $request) { $length = $request->input('length'); $orderBy = $request->input('column'); //Index $orderByDir = $request->input('dir', 'asc'); $searchValue = $request->input('search'); $query = User::eloquentQuery($orderBy, $orderByDir, $searchValue); $data = $query->paginate($length); return new DataTableCollectionResource($data); } }