为什么在 Laravel 8 表单中使用 if 语句后,warehouse_report字段值在表单提交中消失了?

Why does the warehouse_report field value disappear in the form submission after using if statement in Laravel 8 forms?

提问人:fishShadow 提问时间:6/1/2023 更新时间:6/1/2023 访问量:25

问:

Dcat 管理员动态显示的表单,提交时没有值

环境

Mac 操作系统 拉拉维尔:8.83.27 PHP格式:7.3

##Description 我使用Form::make生成一个表单,表单的一部分由URL的参数显示,例如参数category_id=1来显示表单,实现动态表单功能。

简化代码如下: warehouse_report字段在模型 Lease 中不存在,而是由我设置的。

 protected function form()
    {
        return Form::make(\App\Models\Lease::class, function (Form $form) {
            $categoryId = request()->get('category_id').
            if ($categoryId == 1) {
                $form->multipleImage('warehouse_report', 'validation report')->autoUpload()->uniqueName().
            }
   }).
    }

问题

当我加载页面时,上传图像并提交表单而不使用 if,warehouse_report 字段及其值存在于提交加载中,但在使用 if 后,首先将 URL 中的参数设置为 2(不显示表单),然后将其设置为 1(显示表单),然后上传图像并提交内容, 荷载中warehouse_report字段的值为空。报告字段为空 为什么会这样?如何使表单具有值?

截屏

没有判断,在这里输入图片描述

提交判断,在此处输入图像描述

PS:为什么不将 when 用于动态表单? 由于表单是必需的,因此提交时未使用的隐藏表单将阻止提交,并出现同名列提交问题。

我尝试使用 if 或 no if 判断,发现当使用 no if 判断时,表单会提交一个值

php 形式 null laravel-8 dcat

评论

0赞 CBroe 6/1/2023
“ 如果,首先将 URL 中的参数设置为 2(不显示表单),然后将其设置为 1(显示表单)” - 您能澄清一下实际含义吗?在整个过程中,您何时何地“设置”它?
0赞 fishShadow 6/1/2023
首先我在浏览器中设置了URL参数category_id=2,此时因为判断无效而没有显示表单,然后我手动设置category=1并刷新浏览器,此时判断成功并显示表单,然后我上传了图片并提交了表单

答: 暂无答案