【问题标题】:Laravel Resubmit Form Validation Still Show Old Input ValueLaravel 重新提交表单验证仍然显示旧输入值
【发布时间】: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

标签: php laravel laravel-5


【解决方案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');

这就是我解决问题的方法

【讨论】: