行内编辑

未匹配的标注
本文档最新版为 2.x,旧版本可能放弃维护,推荐阅读最新版!

数据表格行内编辑

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

文本 (editable)

Since v1.4.0

启用

$grid->column('title')->editable();

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

效果

开关 (switch)

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

$grid->status()->switch();

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

$form->hidden('status')
    ->customFormat(function ($v) {
        return $v == '打开' ? 1 : 0;
    })
    ->saving(function ($v) {
        return $v ? '打开' : '关闭';
    });

// 或者
$form->switch('status')
    ->customFormat(function ($v) {
        return $v == '打开' ? 1 : 0;
    })
    ->saving(function ($v) {
        return $v ? '打开' : '关闭';
    });

Since v1.7.0

编辑成功后刷新页面

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

开关组 (switchGroup)

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

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

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

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

$form->switch('hot')
    ->customFormat(function ($v) {
        return $v == '打开' ? 1 : 0;
    })
    ->saving(function ($v) {
        return $v ? '打开' : '关闭';
    });

$form->switch('new')
    ->customFormat(function ($v) {
        return $v == '打开' ? 1 : 0;
    })
    ->saving(function ($v) {
        return $v ? '打开' : '关闭';
    });

Since v1.7.0

编辑成功后刷新页面

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

下拉选框

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

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

Since v1.7.0

编辑成功后刷新页面

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

单选框

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

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

Since v1.7.0

编辑成功后刷新页面

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

多选框

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

checkbox 也支持参数为闭包。

Since v1.7.0

编辑成功后刷新页面

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

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1
发起讨论 只看当前版本


呂鳯先
行内编辑结束后如何回调,操作后续的 业务逻辑?
0 个点赞 | 3 个回复 | 问答 | 课程版本 2.x