数据表格行内编辑

数据表格所有使用行内编辑的列字段,都必须在form表单中定义一个相同的表单字段,否则将无法进行编辑。

文本 (editable)

{tip} Since v1.4.0

启用

  1. $grid->column('title')->editable();
  2. // 编辑成功后刷新页面
  3. $grid->column('nickname')->editable(true);

效果 数据表格行内编辑 - 图1

开关 (switch)

快速将列变成开关组件,使用方法如下:

  1. $grid->column('status')->switch();
  2. // 设置颜色
  3. use Dcat\Admin\Admin;
  4. $grid->column('status')->switch(Admin::color()->info());
  5. $grid->column('status')->switch('#333');

这个功能需要你在form表单方法中同样设置一个status字段

  1. $form->hidden('status')
  2. ->customFormat(function ($v) {
  3. return $v == '打开' ? 1 : 0;
  4. })
  5. ->saving(function ($v) {
  6. return $v ? '打开' : '关闭';
  7. });
  8. // 或者
  9. $form->switch('status')
  10. ->customFormat(function ($v) {
  11. return $v == '打开' ? 1 : 0;
  12. })
  13. ->saving(function ($v) {
  14. return $v ? '打开' : '关闭';
  15. });

{tip} Since v1.7.0

编辑成功后刷新页面

  1. $grid->column('status')->switch('', true);

开关组 (switchGroup)

{tip} 注意:在grid中对某字段设置switchGroup默认的保存结果是01,如需修改可以通过$form->hidden(xxx)->saving(...)方法修改。

快速将列变成开关组件组,使用方法如下:

  1. $grid->switch_group->switchGroup([
  2. 'hot' => '热门',
  3. 'new' => '最新',
  4. 'recommend' => '推荐',
  5. 'image.show' => '显示图片', // 更新对应关联模型
  6. ]);
  7. // 或
  8. // 不写label会自动从翻译文件翻译,具体使用请参照 “字段翻译” 章节
  9. $grid->switch_group->switchGroup(['is_new', 'is_hot', 'published']);

这个功能需要你在form表单方法中同样设置对应的字段

  1. $form->switch('hot')
  2. ->customFormat(function ($v) {
  3. return $v == '打开' ? 1 : 0;
  4. })
  5. ->saving(function ($v) {
  6. return $v ? '打开' : '关闭';
  7. });
  8. $form->switch('new')
  9. ->customFormat(function ($v) {
  10. return $v == '打开' ? 1 : 0;
  11. })
  12. ->saving(function ($v) {
  13. return $v ? '打开' : '关闭';
  14. });

{tip} Since v1.7.0

编辑成功后刷新页面

  1. $grid->column('switch_group')->switchGroup([...], true);

数据表格行内编辑 - 图2

下拉选框 (select)

  1. $grid->column('options')->select([
  2. 1 => 'Sed ut perspiciatis unde omni',
  3. 2 => 'voluptatem accusantium doloremque',
  4. 3 => 'dicta sunt explicabo',
  5. 4 => 'laudantium, totam rem aperiam',
  6. ]);

select 也支持参数为闭包,使用方法和editableselect类似。

{tip} Since v1.7.0

编辑成功后刷新页面

  1. $grid->column('options')->select([...], true);

数据表格行内编辑 - 图3

单选框 (radio)

  1. $grid->column('options')->radio([
  2. 1 => 'Sed ut perspiciatis unde omni',
  3. 2 => 'voluptatem accusantium doloremque',
  4. 3 => 'dicta sunt explicabo',
  5. 4 => 'laudantium, totam rem aperiam',
  6. ]);

radio 也支持参数为闭包,使用方法和editableselect类似。

{tip} Since v1.7.0

编辑成功后刷新页面

  1. $grid->column('options')->radio([...], true);

多选框 (checkbox)

  1. $grid->column('options')->checkbox([
  2. 1 => 'Sed ut perspiciatis unde omni',
  3. 2 => 'voluptatem accusantium doloremque',
  4. 3 => 'dicta sunt explicabo',
  5. 4 => 'laudantium, totam rem aperiam',
  6. ]);

checkbox 也支持参数为闭包,使用方法和editableselect类似。

{tip} Since v1.7.0

编辑成功后刷新页面

  1. $grid->column('options')->checkbox([...], true);

数据表格行内编辑 - 图4