Laravel 拉威尔背部()->;withInput();不起作用
我目前正在关注一个关于登录表单的视频教程。下面是在Auth::trument()失败的情况下使用的代码: 这将使用户返回表单并再次填写输入(电子邮件、密码)。但是,当登录正常工作时,字段保持为空 我怎样才能解决这个问题 这是我的表格:Laravel 拉威尔背部()->;withInput();不起作用,laravel,redirect,login,Laravel,Redirect,Login,我目前正在关注一个关于登录表单的视频教程。下面是在Auth::trument()失败的情况下使用的代码: 这将使用户返回表单并再次填写输入(电子邮件、密码)。但是,当登录正常工作时,字段保持为空 我怎样才能解决这个问题 这是我的表格: {!! Form::open(array('route' => 'handleLogin')) !!} <div class="form-group has-feedback"> {!! Form::tex
{!! Form::open(array('route' => 'handleLogin')) !!}
<div class="form-group has-feedback">
{!! Form::text('email', null, array('class' => 'form-control', 'placeholder' => 'EMail')) !!}
<span class="glyphicon glyphicon-envelope form-control-feedback"></span>
</div>
<div class="form-group has-feedback">
{!! Form::password('password', array('class' => 'form-control', 'placeholder' => 'Password')) !!}
<span class="glyphicon glyphicon-lock form-control-feedback"></span>
</div>
<div class="row">
<div class="col-xs-8">
<div class="checkbox icheck">
<label>
<input type="checkbox"> Remember Me
</label>
</div>
</div>
<!-- /.col -->
<div class="col-xs-4">
{!! Form::token() !!}
{!! Form::submit(null, array('class' => 'btn btn-primary btn-block btn-flat')) !!}
</div>
<!-- /.col -->
</div>
{!! Form::close() !!}
现成的Laravel提供了web和api中间件组,其中包含您可能希望应用于web UI和api路由的常见中间件: App/Http/Kernal.php
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
],
'api' => [
'throttle:60,1',
'auth:api',
],
];
请看一下
web
,其中包含StartSession
和ShareErrorsFromSession
,它们负责会话处理,因此如果要显示验证错误或保留旧数据,则必须将其包括在中间件组中。在这种情况下,它的web
开箱即用,Laravel提供了web和api中间件组,其中包含您可能希望应用于web UI和api路由的常见中间件:
App/Http/Kernal.php
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
],
'api' => [
'throttle:60,1',
'auth:api',
],
];
请看一下web
,其中包含StartSession
和ShareErrorsFromSession
,它们负责会话处理,因此如果要显示验证错误或保留旧数据,则必须将其包括在中间件组中。在这种情况下,它的web
尝试更改
return back()->withInput();
与
试着改变
return back()->withInput();
与
因此,正如我们所讨论的,问题在于
web
中间件。在以前的Laravel 5.2框架版本中,如果您想启用会话和错误变量,必须将路由封装在web
中间件中
从版本5.2.27
开始,情况不再如此,因为默认情况下,该中间件组已应用于所有路由
有意使用5.2.27版或更高版本,并使用web中间件组,会导致这些变量出现问题,常见问题是会话变量未传递,以及类\light\View\middleware\ShareErrorsFromSession
提供的$errors
变量,设置了Laravel验证API返回的,但为空**
摘要
- 如果您有Laravel 5.2.27及更高版本,则不需要将路由包装在
web
中间件组中李>
- 如果版本低于该版本,则需要这样做,以便使用会话变量并获得验证错误
来源
因此,正如我们所讨论的,问题在于
web
中间件。在以前的Laravel 5.2框架版本中,如果您想启用会话和错误变量,必须将路由封装在web
中间件中
从版本5.2.27
开始,情况不再如此,因为默认情况下,该中间件组已应用于所有路由
有意使用5.2.27版或更高版本,并使用web中间件组,会导致这些变量出现问题,常见问题是会话变量未传递,以及类\light\View\middleware\ShareErrorsFromSession
提供的$errors
变量,设置了Laravel验证API返回的,但为空**
摘要
- 如果您有Laravel 5.2.27及更高版本,则不需要将路由包装在
web
中间件组中李>
- 如果版本低于该版本,则需要这样做,以便使用会话变量并获得验证错误
来源
您必须做出条件,如果表单返回时出现错误,则应填写该表单
{{old('nom')}
函数查找给定字段的前一个填充值,并对其进行回显
您可以按如下方式使用它:
<div class="col-sm-8">
<input type="text"
class="form-control form-control-sm @error('nom') is-invalid @enderror"
id="nom"
name="nom"
placeholder="Ecriver le nom votre ecole "
value="{{old('nom')}}"
>
</div>
如果表单返回时出现错误
,则必须填写该条件
{{old('nom')}
函数查找给定字段的前一个填充值,并对其进行回显
您可以按如下方式使用它:
<div class="col-sm-8">
<input type="text"
class="form-control form-control-sm @error('nom') is-invalid @enderror"
id="nom"
name="nom"
placeholder="Ecriver le nom votre ecole "
value="{{old('nom')}}"
>
</div>
您使用的是什么Laravel版本?@tiagor我使用的是Laravel 5.2。还使用我发现的内容编辑了我的问题。如果任何$this->validate()
规则失败,您将立即重定向回。添加文档本节中包含的代码。如果显示任何内容,则表示正在触发validate(),这就是代码没有到达else
的原因。我不能肯定,因为我不知道你定义了什么规则。另外,关于输入,在任何情况下,默认情况下,Laravel已经发回了输入,因此,你可以尝试添加old('email')
,看看它是否有效<代码>{!!Form::text('email',old('email'),array('class'=>'表单控件','placeholder'=>'email'))!!}
@TiagoRL已经添加了此代码。没有得到任何错误。以下是我的规则:“email”=>“required”| email | exists:users、“password”=>“required”
。很遗憾,old()也不起作用。提前谢谢。你用的是什么版本的Laravel?@Tiagor我用的是Laravel 5.2。还使用我发现的内容编辑了我的问题。如果任何$this->validate()
规则失败,您将立即重定向回。添加文档本节中包含的代码。如果显示任何内容,则表示正在触发validate(),这就是代码没有到达else
的原因。我不能确定,因为我不知道您定义了什么规则。另外,关于输入,在任何情况下,默认情况下,Laravel已经发回了输入,因此,您可以尝试添加old('email')
,看看我是否