dcat-admin动态显示表单问题

// 想要实现字段值是一样的有办法吗?

$form->select('type', '表单类型')
                ->options(\App\Models\Config::FORM_TYPE)
                ->when([\App\Models\Config::TEXT], function (Form $form) {
                    $form->text('var_val', '值');
                })
                ->when(\App\Models\Config::TEXTAREA, function (Form $form) {
                    $form->textarea('var_val', '值');
                })
                ->when(\App\Models\Config::FILE, function (Form $form) {
                    $form->image('var_val', '图片');
                })->default(\App\Models\Config::TEXT);
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
Mutoulee
最佳答案

先把自己几个字段分别命名区分开,例如:

// 想要实现字段值是一样的有办法吗?

$form->select('type', '表单类型')
                ->options(\App\Models\Config::FORM_TYPE)
                ->when([\App\Models\Config::TEXT], function (Form $form) {
                    $form->text('var_val1', '值');
                })
                ->when(\App\Models\Config::TEXTAREA, function (Form $form) {
                    $form->textarea('var_val2', '值');
                })
                ->when(\App\Models\Config::FILE, function (Form $form) {
                    $form->image('var_val3', '图片');
                })->default(\App\Models\Config::TEXT);

然后,监听表单事件,例如:

$form->saving(function (Form $form) {
    //需自己判断该用哪个值覆盖 $form->var_val
    $form->var_val = $form->var_val1;
    $form->var_val = $form->var_val2;
    $form->var_val = $form->var_val3;
    // 删除用户提交的数据
    $form->deleteInput('var_val1');
    $form->deleteInput('var_val2');
    $form->deleteInput('var_val3');
});

注:以上代码未经测试

2年前 评论
讨论数量: 5
Mutoulee

没看懂问题是啥

2年前 评论
王大牛 (楼主) 2年前
Mutoulee

先把自己几个字段分别命名区分开,例如:

// 想要实现字段值是一样的有办法吗?

$form->select('type', '表单类型')
                ->options(\App\Models\Config::FORM_TYPE)
                ->when([\App\Models\Config::TEXT], function (Form $form) {
                    $form->text('var_val1', '值');
                })
                ->when(\App\Models\Config::TEXTAREA, function (Form $form) {
                    $form->textarea('var_val2', '值');
                })
                ->when(\App\Models\Config::FILE, function (Form $form) {
                    $form->image('var_val3', '图片');
                })->default(\App\Models\Config::TEXT);

然后,监听表单事件,例如:

$form->saving(function (Form $form) {
    //需自己判断该用哪个值覆盖 $form->var_val
    $form->var_val = $form->var_val1;
    $form->var_val = $form->var_val2;
    $form->var_val = $form->var_val3;
    // 删除用户提交的数据
    $form->deleteInput('var_val1');
    $form->deleteInput('var_val2');
    $form->deleteInput('var_val3');
});

注:以上代码未经测试

2年前 评论

我看他的文档2.0标注是字段不能重复,有其他的解决办法没?

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!