markard/grid-data

此软件包已被废弃,不再维护。没有建议替代包。

网格数据是用于为客户端网格js软件包生成json数据的软件包。

0.1.5 2015-04-01 08:36 UTC

README

Latest Stable Version Total Downloads Latest Unstable Version License

这是Laravel 4的软件包。该软件包为客户端表格准备数据。此外,它处理来自不同客户端库的所有特殊输入数据,并提供通用API。

当前支持:Datatables

快速开始

所需设置

composer.json 文件的 require 键中添加以下内容:

"markard/grid-data": "0.*"

运行Composer更新命令

$ composer update

在您的 config/app.php 文件中,将 'Markard\GridData\GridDataServiceProvider' 添加到 providers 数组的末尾

'providers' => array(

    'Illuminate\Foundation\Providers\ArtisanServiceProvider',
    'Illuminate\Auth\AuthServiceProvider',
    ...
    'Markard\GridData\GridDataServiceProvider',

),

config/app.php 文件的末尾,将 'GridData' => 'Markard\GridData\Facade' 添加到 aliases 数组

'aliases' => array(

    'App'        => 'Illuminate\Support\Facades\App',
    'Artisan'    => 'Illuminate\Support\Facades\Artisan',
    ...
    'GridData'   => 'Markard\GridData\Facade',

),

配置

运行Artisan命令以发布配置文件

$ php artisan config:publish markard/grid-data

在您的 config/packages/markard/grid-data/grid-data.php 中设置 driver 选项。

用法

1) 创建一个新文件,例如 UserGridRepository。从 Markard\GridData\GridDataRepository 扩展它。

<?php

use Markard\GridData\GridDataRepository;

class UserGridRepository extends GridDataRepository

您必须实现一个必需的方法

public function getModel()
{
    return new User();
}

2) 在您控制器中

public function index()
{
    $gridData = GridData::init(new GridUserRepository(), Input::all());
    return View::make('index')->withResponse($gridData->toArray());
}

API

GridDataRepository.php
  • getModel()(必需)返回Model模型。
  • hydrate(\Model $model)(可选)返回Eloquent Builder。此方法在 getModel() 之后执行。
  • filter($query, array $filters)(可选)返回null。此方法实现所有筛选到我们的模型或构建器,如果您覆盖了 hydrate 方法。已经实现了一些基本的筛选功能,如果您需要更多,只需覆盖它即可。$filters 是一个包含 Markard\GridData\Filter 实例的数组。Markard\GridData\Filter 是一个实例,具有两个方法: getField()getValue()
  • sort(array $sorts)(可选)返回null。此方法实现所有排序到我们的模型或构建器,如果您覆盖了 hydrate 方法。已经实现了一些基本的排序功能,如果您需要更多,只需覆盖它即可。$sorts 是一个包含 Markard\GridData\Sort 实例的数组。Markard\GridData\Sort 是一个实例,具有两个方法: getField()getOrder()
  • dehydrate(Paginator $paginator)(可选)返回数组。这是在生成数据之前调用的最后一个方法。如果您需要特殊格式的返回数据,请覆盖此方法并返回您想要的任何内容。
ResponseBuilder.php

在调用 GridData::init 之后,将返回此类的实例。

  • filter(array $filters) 设置将实现到查询的 Markard\GridData\Filter 数组。
  • sort(array $sorts) 设置将实现到查询的 Markard\GridData\Sort 数组。
  • page($page) 设置当前页。
  • pageSize($pageSize) 设置页面大小。
  • toArray() 返回数据 + 元数据的数组。
  • toJson() 返回 toArray 方法的编码结果。