如果我的表单操作引发异常,如何使用给定的POST
参数重定向回我的表单页面?
答案 0 :(得分:55)
您可以使用以下内容:
return Redirect::back()->withInput(Input::all());
如果你正在使用Form Request Validation,这正是Laravel将错误和给定输入重定向的方式。
摘自\Illuminate\Foundation\Validation\ValidatesRequests
:
return redirect()->to($this->getRedirectUrl()) ->withInput($request->input()) ->withErrors($errors, $this->errorBag());
答案 1 :(得分:36)
在字段值上写旧函数 例如
jQuery
答案 2 :(得分:10)
在HTML中,您必须使用value = {{ old('') }}
。如果不使用它,就无法获取值,因为会话将存储在缓存中。
与名称验证一样,这将是 -
<input type="text" name="name" value="{{ old('name') }}" />
现在,如果重定向错误,您可以在提交后获取该值。
return redirect()->back()->withInput();
正如 @infomaniac 所说,您也可以直接使用Input class
,
return Redirect::back()->withInput(Input::all());
添加:强>
如果您只显示特定字段,请使用$request->only()
return redirect()->back()->withInput($request->only('name'));
希望,它可能在所有情况下都有效,谢谢。
答案 3 :(得分:4)
我像这样处理Laravel 5.3中的验证异常。如果您使用Laravel Collective,它将自动显示输入旁边的错误,如果您使用laracasts / flash,它还会显示第一个验证错误作为通知。
int getFingerprintIDez() {
uint8_t p = finger.getImage();
if (p != FINGERPRINT_OK) return -1;
p = finger.image2Tz();
if (p != FINGERPRINT_OK) return -1;
p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK) return -1;
// found a match!
Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);
String toStr;
char toChar[2];
toStr=String(finger.fingerID);
toStr.toCharArray(toChar, toStr.length());
BTSerial.write(toChar);
Serial.print(toChar);
return finger.fingerID;
}
渲染:
Handler.php
功能:
public function render($request, Exception $e)
{
if ($e instanceof \Illuminate\Validation\ValidationException) {
return $this->handleValidationException($request, $e);
}
(..)
}
答案 4 :(得分:3)
Laravel 5:
return back()->withInput();
仅限后退:
R.parseAndEval(".jengine()");
答案 5 :(得分:3)
您可以使用以下两种方式中的任何一种:
return redirect()->back()->withInput(Input::all())->with('message', 'Some message');
或者,
return redirect('url_goes_here')->withInput(Input::all())->with('message', 'Some message');
答案 6 :(得分:0)
这将完全正常!
$v = Validator::make($request->all(),[
'name' => ['Required','alpha']
]);
if($v->passes()){
$ab = $request->name;
print_r($ab);
}
else{
//this will return the errors & to check put "dd($errors);" in your blade(view)
return back()->withErrors($v)->withInput();
}
答案 7 :(得分:0)
$request->flash('request',$request);
<input type="text" class="form-control" name="name" value="{{ old('name') }}">
对我有用。
答案 8 :(得分:0)
您可以尝试以下方法:
return redirect()->back()->withInput(Input::all())->with('message', 'Something
went wrong!');