Php Laravel-验证失败后预填充输入数据

Php Laravel-验证失败后预填充输入数据,php,laravel,Php,Laravel,我使用了5.4,在convert controller中有一个索引操作,显示表单,然后在convert controller中计算另一个操作。因此,表单从货币、金额到货币输入都是必需的 以下是我对计算操作的验证: $this->validate(request(), [ 'from_currency' => 'required|min:3|max:3|alpha', 'to_currency' => 'required|min:3|max

我使用了5.4,在convert controller中有一个索引操作,显示表单,然后在convert controller中计算另一个操作。因此,表单从货币、金额到货币输入都是必需的

以下是我对计算操作的验证:

    $this->validate(request(), [
        'from_currency' => 'required|min:3|max:3|alpha',
        'to_currency' => 'required|min:3|max:3|alpha',
        'amount' => 'required|numeric',
    ]);
如果验证失败,我希望在显示错误和表单时,它将预先填充输入

是否有类似的函数可以用于请求?我知道如何在blade中获取域/路径,比如Request::root(),我还尝试了视图中的Request::input('from_currency'),但不起作用

我甚至尝试将视图数据设置为'from_currency'=>request('from_currency'),结果为空。有什么想法吗?

试试这个

在刀片文件中,确保输入具有以下内容:

<input type="text" ... value="{{ old('from_currency') }}" ... >.

在验证表单时,如果请求失败,可以将提交的所有输入重定向到同一页面

    $validator = Validator::make($request->all(), [
        'from_currency' => 'required|min:3|max:3|alpha',
        'to_currency' => 'required|min:3|max:3|alpha',
        'amount' => 'required|numeric',
    ]);

    if ($validator->fails()) {
        return redirect('index')
                    ->withErrors($validator)
                    ->withInput();
    }
在您的刀片视图中,您可以使用
old
帮助程序显示旧值,如下所示

<input type="text" name="from_currency" value="{{ old('from_currency') }}">
<input type="text" name="to_currency" value="{{ old('to_currency') }}">
<input type="text" name="amount" value="{{ old('amount') }}">

您还可以使用用户验证而不是Validator::make

乙二醇

然后在你的表格中使用

 <input type="text" class="form-control" id="question" name="question" value="{{ old('question') }}">

谢谢,这很有帮助。所以我有索引和计算作用。如果错误,我重定向回索引,但如果验证良好,则转到计算,我仍然显示表单,以便他们可以输入不同的数据并再次计算。但是如何重新将数据预填充到表单中,因为旧的似乎不起作用。注意,我在这两个动作中使用了相同的刀片文件。我在blade中尝试了request(),但不起作用。刚刚发现可以将第二个参数传递给old('from_currency',$from_currency)
 $this->validate($request, [
        'question' => "required|min:10|max:100",
        'answer' => "required|min:20|max:300",
        'rank' => "required|numeric|gt:0|lt:100",
    ]);
 <input type="text" class="form-control" id="question" name="question" value="{{ old('question') }}">
if($validation->fails()) {
    return redirect()->back()->withInput();
  }