如何使用输入重定向回形式 -​​ Laravel 5

时间:2015-06-26 20:29:19

标签: php forms laravel redirect laravel-5

如果我的表单操作引发异常,如何使用给定的POST参数重定向回我的表单页面?

9 个答案:

答案 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!');