nerweb/laravel-tblist

此包已被弃用且不再维护。作者建议使用 reillo/grid 包。

为 bootstrap 3 和 laravel 4|5 提供简单的管理员表格列表

v1.2.2 2014-10-29 23:32 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:40:17 UTC


README

为 bootstrap 3 和 laravel 4|5 提供简单的管理员表格列表

安装

将以下内容添加到您的 composer.json 文件中

"nerweb/laravel-tblist": "1.2.x"

然后,运行 composer update nerweb/laravel-tblist 或如果您尚未安装包,则运行 composer install

并且

发布资产

php artisan asset:publish nerweb/laravel-tblist

简单示例

首先,创建一个名为 UserTblist 的类。

use Nerweb\Tblist\BaseTblist;

class UserTblist extends BaseTblist {

    // set no result message
    public $noResults = "No User found.";

    function __construct()
    {
        $this->table = 'users';

        $this->setQuery();
        $this->setColumns();
    }

    protected function setQuery()
    {
        $this->query = User::where('active',1);
        $this->columnsToSelect = array('*');
    }

    protected function setColumns()
    {
        $this->addCheckableColumn();

        $this->columns['username'] = array(
            'label'     => 'Username',
            'sortable'  => true,
            'table_column'  => 'users.username',
        );
        
        $this->columns['email'] = array(
            'label'         => 'Email',
            'sortable'      => true,
            'classes'       => 'someclass someclass2',
            'table_column'  => 'users.email',
            'thead_attr'    => 'style="width:200px" data-someattr="example"',
        );

        $this->addActionColumn();
    }
}

创建一个路由及其控制器。在控制器方法中插入以下内容。

$list = new UserTblist();
$list->prepareList();

return View::make('users.index', array('list', $list));

创建 blade user/index.blade.php 并插入以下内容。

{{ Form:open(array(
    'action' => $list->getBaseURL(),
    'method' =>'get',
    'id' =>'user_tblist',
    'class' =>'tblist-form'
)) }}
{{ $list->getTableData() }}
{{ $list->getPagination() }}
{{ $list->getPaginationInfo() }}
{{ Form::close() }}

完整的示例请参阅 example 文件夹。

API 参考

注意!子类应始终扩展 Nerweb\Tblist\BaseTblist

column 属性接受一个键为列名数据、值为列选项的数据。

列键

列键 可能在结果行中存在,也可能不存在。列键还假设为排序的名称。

注意!如果 列键 在结果行中不存在,您应该创建一个名为 colSetTheColumnName 的受保护方法作为自定义列。

列选项

选项 type 描述
label string 列标题标签。
sortable bool 是否可排序。
table_column string 如果设置,则使用其值而不是 column key 作为排序的列名(例如 roles.adminusers.admin)。
classes string 表格列类。注意!应用于标题、页脚和正文列。
thead_attr string 表格标题属性。

注意!所有 column option 默认为 null

自定义列显示

添加受保护方法 colSetColumnNameToCamel(例如 colSetUsernamecolSetCreatedAt),该方法仅接受一个参数,即结果行的对象。然后输出或显示字符串。

示例

在您的类中,例如 UserTblist。在这个例子中,将以下内容添加到 setColumns 方法旁边。

protected function colSetUsername($row)
{
    echo Html::link("/users/{$row->id}/view", $row->username);
}

自定义列

有时我们想在结果对象行中显示不存在的列。

为此,将 column key 添加到 columns 属性中,并确保将 sortable 选项设置为 false

并且

创建一个名为 colSetYourColumnName($row) 的方法,该方法接受结果行。

多个 Tblist

有时我们想在同一页面上显示多个表格列表。

为此,

  • 在类初始化时,在这种情况下 $list = new UserTblist()。通过 $list->setBaseURL($url, $parameters) 方法覆盖基本 URL。
  • 设置 tblist 表单动作使用 $list->getBaseURL()
  • 使用控制器创建路由并返回 tblist 的 JSON 数据。

示例

查看简单示例 这里

许可证

本项目是开源软件,受MIT 许可证许可。