【发布时间】:2021-07-03 10:42:25
【问题描述】:
我正在使用带有验证器外观的 Laravel 7 来验证表单提交。验证工作正常;但是我看不到从哪里访问旧表单信息以重新填充用户已经填写的字段。我可以看到->withErrors() 传递的错误,但我没有看到来自->withInput() 的任何输入。
这是在我的控制器方法中: // 验证响应 $validator = Validator::make($request->all(), [ 'question_1' => '必需', 'question_2' => '必需', 'question_3' => '必需', 'question_4' => '必需', 'question_5' => '必需', ]);
if ($validator->fails()) {
return redirect('/')
->withErrors($validator)
->withInput();
}
但是,当我调试模板中的变量时,我看不到旧的输入数据:
@if($errors->any())
{{ dd( get_defined_vars()['__data'] ) }}
@foreach ($errors->all() as $error)
{{ $error }}<br/>
@endforeach
@endif
array:4 [▼
"__env" => Illuminate\View\Factory {#290 ▶}
"app" => Illuminate\Foundation\Application {#2 ▶}
"errors" => Illuminate\Support\ViewErrorBag {#351 ▶}
"questions" => Illuminate\Database\Eloquent\Collection {#1319 ▶}
]
在上面的调试输出中,我得到了带有错误消息的errors 键,但我在变量中的任何地方都看不到旧输入。 questions 键是传递给模板的数据库结果集合,而不是旧输入。
验证失败后如何访问用户提交的旧表单输入?
【问题讨论】:
标签: validation laravel-7