saguajardo/datatable

Laravel 5 用于 Datatables 的库

1.3.x-dev 2017-06-27 16:26 UTC

This package is not auto-updated.

Last update: 2024-09-19 10:41:13 UTC


README

Total Downloads License

Laravel 5 datatable

Laravel 5 的 Datatable。借助 Laravel 5 的 Datatable 类,可以轻松重用和修改通过 Ajax 查询的 datatables。默认情况下,它使用 Bootstrap 3,但也可以不使用 Bootstrap。

变更日志

变更日志可在 此处 找到

###安装

{
    "require": {
        "saguajardo/datatable": "dev-master"
    }
}

执行 composer update

然后在 config/app.php 文件中的 providers 部分,添加以下行

    'providers' => [
        // ...
        Saguajardo\Datatable\DatatableServiceProvider::class,
    ]

现在在 config/app.php 文件中的 aliases 部分,添加 Facades

    'aliases' => [
        // ...
        'Datatable'=> Saguajardo\Datatable\Facades\DatatableFacade::class,
        'DatatableBuilder'=> Saguajardo\Datatable\DatatableBuilder::class,
    ]

快速入门

创建 datatables 类非常简单。

需要在 app/Datatables/ 目录下创建名为 PruebaDatatable.php 的文件,内容如下

<?php 

namespace App\Datatables;

use Saguajardo\Datatable\Datatable;

class PruebaDatatable extends Datatable
{
    public function buildDatatable()
    {
        $this
            ->add('Descripci&oacute;n')
            ->add('Perfil')
            ->add('Acci&oacute;n');
    }
}

注意:目录可以是您喜欢的任何位置。在我这个例子中,我在 app 目录下创建了它

之后,在控制器中实例化该类并将其发送到视图

<?php namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

use Saguajardo\Datatable\DatatableBuilder;

class PruebaController extends Controller {

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        //Construct WelcomeController
    }
	
	public function prueba(DatatableBuilder $datatableBuilder) {
		        // Creo el datatable
        $datatable = $datatableBuilder->create(\App\Datatables\PruebaDatatable::class, [
            'method' => 'GET',
            'url'    => 'listado',
            'data'      => ['id' => 'usuariosTable',
                            'fields' => [
                                'data.descripcion',
                                'data.perfil',
                                'createEditDeleteButton(data.id)',
                            ]
                        ],
        ]);

        return view('prueba', compact('datatable'));
		
	}
	
	public function listado() {
		
		$array[] = array(
			"id" => 10,
			"descripcion" => "Prueba",
			"perfil" => "Admin",
			"id_perfil" => 20,
		);
        
		echo json_encode(array(
            "data" =>
                $array
        ));
	}

}

创建路由

// app/Http/routes.php
Route::get('prueba',  array('as' => 'prueba', 'uses' => 'PruebaController@prueba'));
Route::get('listado',  array('as' => 'listado', 'uses' => 'PruebaController@listado'));

使用 Datatable() 辅助函数在视图中打印 Datatable

<!-- resources/views/prueba.blade.php -->

@extends('app')

@section('content')
    {!! Datatable($datatable) !!}
@endsection

访问 /prueba URL;上面的代码将生成以下内容

datatable's image

要发布配置文件,需要使用 artisan 执行以下命令

php artisan vendor:publish

这会创建 config/datatable.php 文件(从中可以修改类的配置)以及 resources/views/vendor/datatable/ 目录中使用的视图。在这些视图中,可以根据需要修改 datatables 的模板。