netvibes/datatablehandler

处理Prime Vue数据表格。

dev-main 2024-02-12 15:43 UTC

This package is auto-updated.

Last update: 2024-09-12 17:14:49 UTC


README

安装

运行composer require netvibes/datatablehandler

添加到controller.php

    use Netvibes\Datatablehandler\DataTableService;


    public function paginateIndex($request, $indexQuery, $withColumns = [], $returnPaginated = true)
    {
        $processedDataTable = DataTableService::process($request->query('lazyEvent'), $indexQuery, $withColumns, $returnPaginated);
        
        return $processedDataTable;
    }

添加到你的模型中以允许在这些列/关系上进行全局过滤

    public $filters = [
        'column1',
        'column2',
        'relation' => [
            'column1'
        ]
    ];

多对多或一对多关系上无法进行排序

使用

在任意其他控制器中使用

    $paginatedResponse = $this->paginateIndex($request, new Model(), ['relations'], true);
    return Response()->json($paginatedResponse);

在更复杂的查询情况下

    $arrayResponse = $this->paginateIndex($request, new Model(), ['relations'], false);
    
    $indexQuery = $arrayResponse['query'];
    
    // Perform extra queries here
    $indexQuery = $indexQuery->where('column', false);
    $indexQuery = $indexQuery->where('column2', 'parameter');
    
    // query needs to be paginated
    return Response()->json($indexQuery->paginate($arrayResponse['pages']));

URL参数

    ? page = 1
    & lazyEvent = {
       "first":0,
       "rows":10,
       "sortField":"order",
       "sortOrder":1,
       "filters":{
          "global":{
             "value":null,
             "matchMode":"contains"
          }
       }
    }