情况如下:当我提交使用Blade / Laravel Collective制作的表单时,如果某个字段与验证规则的要求不匹配,则会重新加载表单的输入字段。我注意到Laravel首先使用先前加载的数据填充输入字段(如果使用“旧”函数),并且第二次用户输入的数据覆盖先前的数据。 (我已经通过设置一个js console.log检查输入字段的内容来验证这一点,该字段在文件发送到浏览器之前以及加载到浏览器之后没有通过验证规则。)
精确:当我使用NOSQL数据库时,我不使用Eloquent来构建表单,因此我使用包含来自DB(命名输入)的数据的数组“手动”填充表单的输入字段,如下所示:
{!! Form::text($field, $inputs[$field], ['class'=>'form-control']) !!}
我认为问题来自于这种在表单中加载数据的方式,但我无法解释Laravel第二次加载内容的时间和原因。
由于我需要获取特定任务的验证规则拒绝的字段的值,我想知道是否有一个Helper或其他东西提供用户在验证之前输入的字段的值
修改
最后,我非常确定Laravel在验证错误后没有填充表单输入,浏览器会自动执行此操作,因为Laravel正在重定向。因此,从“刀片”模板“捕获”输入数据的唯一方法应该是在Laravel重定向时将其闪存到会话变量中,但是由FormRequest类自动完成,并且withValidator()函数不起作用我把它放到扩展FormRequest()的类中,看起来相当不可能......