nerweb / laravel-tblist
Requires
- php: >=5.3.0
- illuminate/support: 4.x|5.0.x
Requires (Dev)
- phpunit/phpunit: 4.0.*
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.admin 、users.admin )。 |
classes |
string |
表格列类。注意!应用于标题、页脚和正文列。 |
thead_attr |
string |
表格标题属性。 |
注意!所有 column option
默认为 null
。
自定义列显示
添加受保护方法 colSetColumnNameToCamel
(例如 colSetUsername
、colSetCreatedAt
),该方法仅接受一个参数,即结果行的对象。然后输出或显示字符串。
示例
在您的类中,例如 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 许可证许可。