数据表格
数据表格动作
表格动作基类 (GridAction)
所有数据表格相关的动作类,包括工具栏按钮(AbstractTool
)、
行操作(RowAction
)、批量操作(BatchAction
)
等等操作按钮的基类都继承自Dcat\Admin\Grid\GridAction
类,而GridAction
则继承自动作类基类(Action
)。
下面将介绍GridAction
类中增加的方法或属性
表格实例 (parent)
通过 parent
属性可以获取到表格实例 (Dcat\Admin\Grid
)。
下面简单的演示下用法,这段代码没有任何实际意义
use Dcat\Admin\Grid\GridAction
class MyAction extends GridAction
{
public function html()
{
$gridName = $this->parent->getName();
return ...;
}
...
}
表格页面地址 (resource)
通过 resource
方法可以获取到表格页面的地址。
下面简单的演示下用法,这段代码没有任何实际意义
use Dcat\Admin\Grid\GridAction
class MyAction extends GridAction
{
public function html()
{
// 假如你的列表页路径为 /admin/users,则这里的值为 http://域名/admin/users
$path = $this->resource();
return ...;
}
...
}
工具栏操作按钮基类 (AbstractTool)
表格工具栏按钮基类(Dcat\Admin\Grid\Tools\AbstractTool
)继承自GridAction
类。
下面将介绍AbstractTool
类中增加的方法或属性
按钮样式 (style)
通过 style
属性可以设置工具栏按钮的类(class
),默认值为 btn btn-white waves-effect
。
下面简单的演示下用法
use Dcat\Admin\Grid\AbstractTool
class MyTool extends AbstractTool
{
protected $style = 'btn btn-outline-primary waves-effect';
...
}
批量操作基类 (BatchAction)
表格工具栏按钮基类(Dcat\Admin\Grid\Tools\BatchAction
)继承自GridAction
类。
下面将介绍BatchAction
类中增加的方法或属性
获取选中行的主键数组 (getSelectedKeysScript)
通过 getSelectedKeysScript
方法可以生成获取选中的行的主键数组的JS
代码。
下面简单的演示下用法
use Dcat\Admin\Grid\BatchAction
class MyBatchAction extends BatchAction
{
/**
* {@inheritdoc}
*/
public function actionScript()
{
$warning = __('No data selected!');
return <<<JS
var key = {$this->getSelectedKeysScript()}
if (key.length === 0) {
Dcat.warning('{$warning}');
return ;
}
Object.assign(data, {_key:key});
JS;
}
...
}
行操作基类 (RowAction)
表格工具栏按钮基类(Dcat\Admin\Grid\Tools\RowAction
)继承自GridAction
类。
下面将介绍RowAction
类中增加的方法或属性
行数据 (row)
通过 row
属性可以获取到当前行数据内容。
下面简单的演示下用法,这段代码没有任何实际意义
use Dcat\Admin\Grid\RowAction
class MyRowAction extends RowAction
{
public function html()
{
// 获取当前行的字段值
$username = $this->row->username;
// 转化为数组
$rowArray = $this->row->toArray();
return ...;
}
...
}
主键值 (getKey)
通过 getKey
属性方法可以获取到当前行数据的主键值(ID
)。
下面简单的演示下用法,这段代码没有任何实际意义
use Dcat\Admin\Grid\RowAction
class MyRowAction extends RowAction
{
public function html()
{
$id = $this->getKey();
return ...;
}
...
}