Laravel 5.8 验证错误 return 到所有输入的特定视图 -> 旧的不工作
Laravel 5.8 on validation error return to specific view with all input -> old not working
TLDR;
(In Laravel 5.8) Upon validation error, how can I return to a specific view with all input and the errors?
我正在创建一个多步骤表单,我需要在其中验证每个步骤的输入。因此,我创建了第一个页面,然后更新后续页面。
在第二页上,当验证器失败时,我返回特定视图,因为我希望它转到此部分而不是表单的开头。我还返回错误和失败时的输入。
控制器:
if ($validator->fails()) {
return view('partials.question_02_' . $type)
->with('type', $type)
->with('id', $id)
->withErrors($validator)
->withInput($request->all());
}
这是我的验证逻辑:
$validator = Validator::make($request->all(), [
'email' => 'required',
'first_name' => 'required',
'last_name' => 'required',
'phone' => 'required',
]);
这样,我就可以返回到特定视图并查看验证错误。但是,我无法收到旧的输入。
Blade下面会显示erro(出现error class),但是不会显示旧的input.
<input class="@if ($errors->has('first_name')) error @endif"
type="text" name="first_name" placeholder="First Name" value="{{ old('first_name') }}">
*注意,为了便于阅读,我只把它放在两行
奇怪的是,如果我死掉并转储请求,我可以看到所有输入:
dd($request->all());
但是,如果我尝试从会话中获取它,我看不到任何输入:
@if($errors)
{{var_dump(Session::all())}}
@endif
知道为什么 {{ old('first_name') }} 在这种情况下不起作用吗?
谢谢!
您正在返回一个视图 return view()
而您需要 return 重定向 return redirect()
因为 return 视图将生成一个新页面而 old() 不会工作。
所以
return view('partials.question_02_' . $type)
使用
return redirect()
&在你的情况下
redirect()->action('LoginController@secondPage'); //you controller and method handling your second page
TLDR;
(In Laravel 5.8) Upon validation error, how can I return to a specific view with all input and the errors?
我正在创建一个多步骤表单,我需要在其中验证每个步骤的输入。因此,我创建了第一个页面,然后更新后续页面。
在第二页上,当验证器失败时,我返回特定视图,因为我希望它转到此部分而不是表单的开头。我还返回错误和失败时的输入。
控制器:
if ($validator->fails()) {
return view('partials.question_02_' . $type)
->with('type', $type)
->with('id', $id)
->withErrors($validator)
->withInput($request->all());
}
这是我的验证逻辑:
$validator = Validator::make($request->all(), [
'email' => 'required',
'first_name' => 'required',
'last_name' => 'required',
'phone' => 'required',
]);
这样,我就可以返回到特定视图并查看验证错误。但是,我无法收到旧的输入。
Blade下面会显示erro(出现error class),但是不会显示旧的input.
<input class="@if ($errors->has('first_name')) error @endif"
type="text" name="first_name" placeholder="First Name" value="{{ old('first_name') }}">
*注意,为了便于阅读,我只把它放在两行
奇怪的是,如果我死掉并转储请求,我可以看到所有输入:
dd($request->all());
但是,如果我尝试从会话中获取它,我看不到任何输入:
@if($errors)
{{var_dump(Session::all())}}
@endif
知道为什么 {{ old('first_name') }} 在这种情况下不起作用吗?
谢谢!
您正在返回一个视图 return view()
而您需要 return 重定向 return redirect()
因为 return 视图将生成一个新页面而 old() 不会工作。
所以
return view('partials.question_02_' . $type)
使用
return redirect()
&在你的情况下
redirect()->action('LoginController@secondPage'); //you controller and method handling your second page