Php Laravel-验证失败后预填充输入数据
我使用了5.4,在convert controller中有一个索引操作,显示表单,然后在convert controller中计算另一个操作。因此,表单从货币、金额到货币输入都是必需的 以下是我对计算操作的验证: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
$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();
}