数据表格动作

表格动作基类 (GridAction)

所有数据表格相关的动作类,包括工具栏按钮(AbstractTool)、 行操作(RowAction)、批量操作(BatchAction) 等等操作按钮的基类都继承自Dcat\Admin\Grid\GridAction类,而GridAction则继承自动作类基类(Action)。

下面将介绍GridAction类中增加的方法或属性

表格实例 (parent)

通过 parent 属性可以获取到表格实例 (Dcat\Admin\Grid)。

下面简单的演示下用法,这段代码没有任何实际意义

  1. use Dcat\Admin\Grid\GridAction
  2. class MyAction extend GridAction
  3. {
  4. public function html()
  5. {
  6. $gridName = $this->parent->getName();
  7. return ...;
  8. }
  9. ...
  10. }

表格页面地址 (resource)

通过 resource 方法可以获取到表格页面的地址。

下面简单的演示下用法,这段代码没有任何实际意义

  1. use Dcat\Admin\Grid\GridAction
  2. class MyAction extend GridAction
  3. {
  4. public function html()
  5. {
  6. // 假如你的列表页路径为 /admin/users,则这里的值为 http://域名/admin/users
  7. $path = $this->resource();
  8. return ...;
  9. }
  10. ...
  11. }

工具栏操作按钮基类 (AbstractTool)

表格工具栏按钮基类(Dcat\Admin\Grid\Tools\AbstractTool)继承自GridAction类。

下面将介绍AbstractTool类中增加的方法或属性

按钮样式 (style)

通过 style 属性可以设置工具栏按钮的类(class),默认值为 btn btn-white waves-effect

下面简单的演示下用法

  1. use Dcat\Admin\Grid\AbstractTool
  2. class MyTool extend AbstractTool
  3. {
  4. protected $style = 'btn btn-outline-primary waves-effect';
  5. ...
  6. }

批量操作基类 (BatchAction)

表格工具栏按钮基类(Dcat\Admin\Grid\Tools\BatchAction)继承自GridAction类。

下面将介绍BatchAction类中增加的方法或属性

获取选中行的主键数组 (getSelectedKeysScript)

通过 getSelectedKeysScript 方法可以生成获取选中的行的主键数组的JS代码。

下面简单的演示下用法

  1. use Dcat\Admin\Grid\BatchAction
  2. class MyBatchAction extend BatchAction
  3. {
  4. /**
  5. * {@inheritdoc}
  6. */
  7. public function actionScript()
  8. {
  9. $warning = __('No data selected!');
  10. return <<<JS
  11. var key = {$this->getSelectedKeysScript()}
  12. if (key.length === 0) {
  13. Dcat.warning('{$warning}');
  14. return ;
  15. }
  16. Object.assign(data, {_key:key});
  17. JS;
  18. }
  19. ...
  20. }

行操作基类 (RowAction)

表格工具栏按钮基类(Dcat\Admin\Grid\Tools\RowAction)继承自GridAction类。

下面将介绍RowAction类中增加的方法或属性

行数据 (row)

通过 row 属性可以获取到当前行数据内容。

下面简单的演示下用法,这段代码没有任何实际意义

  1. use Dcat\Admin\Grid\RowAction
  2. class MyRowAction extend RowAction
  3. {
  4. public function html()
  5. {
  6. // 获取当前行的字段值
  7. $username = $this->row->username;
  8. // 转化为数组
  9. $rowArray = $this->row->toArray();
  10. return ...;
  11. }
  12. ...
  13. }

主键值 (getKey)

通过 getKey 属性方法可以获取到当前行数据的主键值(ID)。

下面简单的演示下用法,这段代码没有任何实际意义

  1. use Dcat\Admin\Grid\RowAction
  2. class MyRowAction extend RowAction
  3. {
  4. public function html()
  5. {
  6. $id = $this->getKey();
  7. return ...;
  8. }
  9. ...
  10. }