帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:模式  tab    友元  tables  Eloquent  Html表格  
Friendly ways to render Eloquent models as usable HTML tables

  • 源代码名称:laravel-table
  • 源代码网址:http://www.github.com/gbrock/laravel-table
  • laravel-table源代码文档
  • laravel-table源代码下载
  • Git URL:
    git://www.github.com/gbrock/laravel-table.git
  • Git Clone代码到本地:
    git clone http://www.github.com/gbrock/laravel-table
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/gbrock/laravel-table
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • Laravel 表

    Made for Laravel 5Latest Tag

    这个包包含灵活的方式,以动态的HTML表呈现。 这包括可以排序列。可以自定义单元数据。自动分页。用户定义 rows-per-page 。批操作处理和可以扩展过滤( 即将来) 等。

    安装

    需要 composer.json 中的软件包:

    "gbrock/laravel-table": "dev-master"

    将服务提供商添加到 config/app.php,并选择 Facade:

    'GbrockTableProvidersTableServiceProvider',...'Table'=>'GbrockTableFacadesTable',

    发布视图和配置:

    php artisan vendor:publish

    用法

    为了向视图呈现Eloquent模型的HTML table,首先创建一个 table 对象,传递模型集合( 这可以在你的控制器。存储库或者任何服务类中完成):

    $rows=User::get(); // Get all users from the database$table=Table::create($rows); // Generate a Table based on these"rows"

    然后将该对象传递到你的视图:

    return view('users.index', ['table'=>$table]);

    视图中的table 对象可以使用它的render 函数呈现:

    {!!$table->render() !!}

    它将呈现如下内容:

    Basic example

    排序

    若要在标题中添加用于排序指示列的链接,请将 Sortable 特性添加到模型中。 由于默认( 出于安全考虑) 不允许排序字段,也可以添加包含允许字段的Sortable array 。

    useGbrockTableTraitsSortable;classUserextendsModel {useSortable;/** * The attributes which may be used for sorting dynamically. * * @var array*/protected$sortable= ['username', 'email', 'created_at'];

    这将把 Sortable 范围添加到模型中,在检索行时应该使用。 改变我们的例子 $rows = User::get() 变成了:

    $rows=User::sorted()->get(); // Get all users from the database, but listen to the user Request and sort accordingly

    现在,我们的table 将在 header 中呈现链接:

    Sortable example

    这些链接将包含 ?sort=username&direction=asc 之类的查询字符串。

    分页

    如果你对Eloquent集合进行分页,它将自动呈现为 below:

    $rows=User::sorted()->paginate(); // Get all users from the database, sort, and paginate

    文档级自定义项

    将第二个参数传递到数据库调用/table 创建,:

    $table=Table::create($rows, ['username', 'created_at']); // Generate a Table based on these"rows"

    单元格

    你可以指定在添加列时呈现单元格数据时要使用的闭包:

    // We pass in the field, label, and a callback accepting the model data of the row it's currently rendering$table->addColumn('created_at', 'Added', function($model) {return$model->created_at->diffForHumans();});

    此外,由于 table 正在访问模型的属性,我们可以通过使用访问器添加或者修改我们想要的任何列键:

    protectedfunctiongetRenderedCreatedAtAttribute() {// We access the following diff string with"$model->rendered_created_at"return$this->created_at->diffForHumans(); }

    如果存在 rendered_foobar 属性,默认视图会优先考虑,否则它将使用 foobar 属性。

    视图

    view文件的副本在运行 php artisan vendor:publish 后位于 /resources/vendor/gbrock/tables/ 中。 你可以在任意位置复制这里文件并修改它,然后告诉 table 使用新视图:

    $table->setView('users.table');


    文章标签:模式  tab    友元  tables  Html表格  Eloquent  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语