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);
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
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');
});

注:以上代码未经测试

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

没看懂问题是啥

1年前 评论
王大牛 (楼主) 1年前
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');
});

注:以上代码未经测试

1年前 评论

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

1年前 评论

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