研究hyperf-plus/ui 表格的新增删除和修改以及自定义操作

首先是新增操作,新增的话需要一个填写表单的地方

$grid->dialogForm($this->form()->isDialog()->labelWidth('auto')->className('p-15'), '700px', ['添加账户', '编辑账户']);

这段代码是在表格里绑定自己创建的表单,分析一下
dialogForm,意思是在表格里绑定表单,第一个参数传一个表单对象,第二个参数传表单宽度,第三个参数传表单的标题。
下面上表单代码

public function form(): Form
    {
    //首先把你需要操作的模型new一下,然后传入生成表单的类里
        $form = new Form(new $userModel());
        //首先是创建上传头像的组件,item绑定字段名和显示名称,component绑定组件,
        //Upload::make是生成一个上传文件的组件,avatar是指定上传文件的类型,
        //path是指定存储路径,uniqueName是指定存储的文件名称不重复。
        userTable = "admin_users";
        $form->item('avatar', '头像')->component(Upload::make()->avatar()->path('avatar')->uniqueName());
        //item是快速生成字段,而row则是自定义布局。columm新增一栏,rowItem设置字段名和显示名称
        //serveCreationRules 设置新建数据的规则,required必填,unique:table_name在表内不重复
        //serveUpdateRules 设置更新数据的表单规则,Input::make()创建input组件对象
        //showWordLimit() 是否显示字数限制,maxlength(20)字段最大输入长度20
        $form->row(function (Row $row, Form $form) use ($userTable) {
            $row->column(8, $form->rowItem('username', '用户名')
                ->serveCreationRules(['required', "unique:{$userTable}"])
                ->serveUpdateRules(['required', "unique:{$userTable},username,{{id}}"])
                ->component(Input::make())->required());
            $row->column(8, $form->rowItem('name', '名称')->component(Input::make()->showWordLimit()->maxlength(20))->required());
        });
        //这里是生成密码input栏 confirmed比较和确认密码字段是否一致,ignoreEmpty不清楚,看注释是
        //If Null Dont Return ,应该是为空就忽略的意思。showPassword 是否显示切换密码图标
        $form->row(function (Row $row, Form $form) {
            $row->column(8, $form->rowItem('password', '密码')->serveCreationRules(['required', 'string', 'confirmed'])->serveUpdateRules(['confirmed'])->ignoreEmpty()
                ->component(function () {
                    return Input::make()->password()->showPassword();
                }));
                //copyValue 从字段里复制
            $row->column(8, $form->rowItem('password_confirmation', '确认密码')
                ->copyValue('password')->ignoreEmpty()
                ->component(function () {
                    return Input::make()->password()->showPassword();
                }));
        });
        //在新增/更新数据前的处理操作,这里是加密了密码
         $form->saving(function (Form $form) {
            if ($form->password) {
                $form->password = password_hash($form->password, PASSWORD_DEFAULT);
            }
        });
                //在删除数据前的处理操作
        $form->deleting(function (Form $form, $id) {
            if (Auth(config('admin.auth.guard', 'jwt'))->user()->getId() == $id || $id == 1) {
                return UI::responseError('删除失败');
            }
        });
    }

ok,这个配置好了,你点击新增和编辑按钮就会弹出表单让你填了。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值