如何在Laravel中使用旧输入重定向?

kyo*_*kyo 15 php forms laravel blade laravel-5

我有一个登录模式.当用户登录失败时,我想通过以下方式重定向回这个模式:

  • 错误消息
  • 和旧的输入.

在此输入图像描述


调节器

// if Auth Fail 
return Redirect::to('/')
                ->with('error','Username/Password Wrong')
                ->withInput(Request::except('password'))
                ->withErrors($validator);
Run Code Online (Sandbox Code Playgroud)

形成

{!! Form::open(array('url' => '/', 'class' => 'login-form')) !!}

  <div class="form-group">
    <label for="username">Username</label>
    <input type="text" class="form-control"  id="username" name="username" placeholder="Enter Username" required>
  </div>
  <div class="form-group">
    <label for="password">Password</label>
    <input type="password" class="form-control" id="password" name="password" placeholder="Enter Password" required>
  </div>
  <button type="submit" class="btn btn-primary">Login</button>

{!! Form::close() !!}
Run Code Online (Sandbox Code Playgroud)

正如您可以看到我的图像的一部分,似乎显示错误消息,但用户名的旧输入似乎不会填充.

有人可以纠正我吗?我忘了做什么吗?在Laravel中完成这样的事情最有效的方法是什么?

toe*_*lab 27

你可以像这样访问最后的输入:

$username = Request::old('username');

正如@Arian Acosta指出的那样,你可能会这样做

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

文档中所述,在刀片视图中更方便.


控制器中有几种可能性:

代替 ->withInput(Request::except('password'))

做:

一个) Input::flash();

要么:

b) Input::flashExcept('password');

并重定向到视图:

一个) ->withInput(Input::except('password'));

RESP.有:

b) ->withInput();

有关旧输入文档以供进一步阅读...

  • 请脱掉`Request :: flash();`我不需要这样做. (2认同)

小智 5

尝试这个

 return redirect()->back()
       ->with('error','username is invalid')
       ->withInput();
Run Code Online (Sandbox Code Playgroud)

确保value="{{ old('username') }}"你的输入元素中有