如何使用 Laravel 中的旧输入进行重定向?
How can I redirect with old input in Laravel?
我有一个登录模式。当用户登录未通过身份验证时,我想重定向回此模式:
- 错误消息
- 和旧输入。
控制器
// if Auth Fail
return Redirect::to('/')
->with('error','Username/Password Wrong')
->withInput(Request::except('password'))
->withErrors($validator);
表格
{!! 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() !!}
正如您在我的图片中看到的那样,似乎显示了错误消息,但似乎没有填充用户名的旧输入。
有人可以纠正我吗?
我忘记做任何事了吗?
在 Laravel 中完成这样的事情最有效的方法是什么?
您缺少输入元素上的值...
value="{{ Input::get ('username', '') }}"
您可以像这样访问最后的输入:
$username = Request::old('username');
正如 @Arian Acosta 所指出的,你可以简单地做
<input type="text" ... value="{{ old('username') }}" ... >
.
如 docs 中所述,在 blade 视图中更方便。
控制器有几种可能性:
而不是
->withInput(Request::except('password'))
做:
a) Input::flash();
或:
b) Input::flashExcept('password');
并重定向到视图:
a) ->withInput(Input::except('password'));
分别。有:
b) ->withInput();
进一步阅读 docs about Old Input...
对于我的项目,我需要另一种方式:
在验证中推送 GET
请求 return 以获取一些以前的数据:
// if the validator fails, redirect back to the form
if ($validator->fails()) {
//let's send some data back (Orlando,Florida):
return Redirect::to('auth/register?city=Orlando&State=Florida')
->withErrors($validator)
}else{
//validation success
}
试试这个
return redirect()->back()
->with('error','username is invalid')
->withInput();
确保您的输入元素中有 value="{{ old('username') }}"
我有一个登录模式。当用户登录未通过身份验证时,我想重定向回此模式:
- 错误消息
- 和旧输入。
控制器
// if Auth Fail
return Redirect::to('/')
->with('error','Username/Password Wrong')
->withInput(Request::except('password'))
->withErrors($validator);
表格
{!! 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() !!}
正如您在我的图片中看到的那样,似乎显示了错误消息,但似乎没有填充用户名的旧输入。
有人可以纠正我吗? 我忘记做任何事了吗? 在 Laravel 中完成这样的事情最有效的方法是什么?
您缺少输入元素上的值...
value="{{ Input::get ('username', '') }}"
您可以像这样访问最后的输入:
$username = Request::old('username');
正如 @Arian Acosta 所指出的,你可以简单地做
<input type="text" ... value="{{ old('username') }}" ... >
.
如 docs 中所述,在 blade 视图中更方便。
控制器有几种可能性:
而不是
->withInput(Request::except('password'))
做:
a) Input::flash();
或:
b) Input::flashExcept('password');
并重定向到视图:
a) ->withInput(Input::except('password'));
分别。有:
b) ->withInput();
进一步阅读 docs about Old Input...
对于我的项目,我需要另一种方式:
在验证中推送 GET
请求 return 以获取一些以前的数据:
// if the validator fails, redirect back to the form
if ($validator->fails()) {
//let's send some data back (Orlando,Florida):
return Redirect::to('auth/register?city=Orlando&State=Florida')
->withErrors($validator)
}else{
//validation success
}
试试这个
return redirect()->back()
->with('error','username is invalid')
->withInput();
确保您的输入元素中有 value="{{ old('username') }}"