Laravel 重新提交表单验证仍然显示旧输入值
Posted
技术标签:
【中文标题】Laravel 重新提交表单验证仍然显示旧输入值【英文标题】:Laravel Resubmit Form Validation Still Show Old Input Value 【发布时间】:2018-02-12 11:06:35 【问题描述】:重新提交表单验证后,数据保存到数据库,但旧表单数据没有清除
我用这个来验证:
$this->validate($request, [
'branch' => 'required|not_in:---Select Branch---',
'dep' => 'required|not_in:--- Select Department ---',
'txt_username' => 'required|min:5|max:20',
]);
插入数据库后,我重定向到路由:
return redirect()->route('newrec');
验证时我使用这段代码来记住我刚刚输入的旧数据:
value=" old('txt_username')"
如果我填写表格,我会通过清除所有旧数据重定向到路由newrec
,如果我没有填写表格并且验证失败,它将显示我刚刚输入的旧文本。如果我在验证失败后完成并重新提交表单,我将重定向到 newrec
路由,但它仍然显示我刚刚输入的旧值,而数据已保存到数据库中。重新提交表单后如何清除。
【问题讨论】:
对问题的安静令人困惑的解释。你能澄清最后一段吗? @SagarGautam 当我在验证后重新提交表单,然后它会重定向到路由 newrec 但使用我刚刚输入的旧数据。重新提交表格后如何清除?? 假设您填写了几个字段并将其他字段留空,然后验证失败并且您填写的值出现在表单上。现在您完成表单,然后提交,然后重定向到仍显示旧数据的 newrec。这是我理解的问题吗? @SagarGautam:是的,这是我的问题 好的没问题:D 【参考方案1】: $validator = Validator::make($request->all(), [
'name' => 'required|min:3',
'email' => 'required|email|unique:users,email',
'role' => 'required'
]);
if ($validator->fails())
return back()->withErrors($validator)
->withInput();
User::create([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt("123456"),
'role' => $request->role
]);
return back()->with('success', 'Successfully saved');
这就是我解决问题的方法
【讨论】:
以上是关于Laravel 重新提交表单验证仍然显示旧输入值的主要内容,如果未能解决你的问题,请参考以下文章