我的注册表格和登录表格在同一页面上,但是在不同的选项卡中。默认情况下,活动选项卡是登录名。注册时如果有任何错误,则会返回错误消息,并且可以使用命名的错误包在正确的位置打印错误消息。
问题是当错误来自注册表单时,活动选项卡应该被注册。为此,我需要检查laravel验证的名称。
我该怎么做?
验证码为:
if ($validator->fails()) {
return back()
->withErrors($validator, 'register')
->withInput();
}
答案 0 :(得分:3)
您可以尝试使用->hasBag()
变量上的$errors
方法来检查给定密钥是否存在一个包,这将允许您输出相关的CSS类或显示正确的标签。例如:
<div class="tab registration{!! $errors->hasBag('register') ? ' active' : '' !!}">
</div>
如果注册表格中存在错误记录袋,则 hasBag('register')
将返回true
,假设您已设置验证以定义用于错误记录的记录袋。这样您就可以选择正确的标签。
答案 1 :(得分:0)
“标签”链接应如下所示:
如果/ auth是您页面的路由,则
登录标签:/auth#login
=>这将显示登录标签
对于注册标签:/auth#register
=>这将显示注册标签
<ul class="nav nav-tabs tab-nav-right" role="tablist">
<li role="presentation" class="active"><a href="#login" data-toggle="tab"></a></li>
<li role="presentation"><a href="#register" data-toggle="tab"></a</li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane fade in active" id="login">
<b>Login Form</b>
@if (Request::path()=='auth#login' && count($errors) > 0)
@foreach ($errors->all() as $error)
<p class="alert alert-danger alert-dismissible fade show" role="alert">{{ $error }}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</p>
@endforeach
@endif
</div>
<div role="tabpanel" class="tab-pane fade" id="register">
<b>Register Form</b>
@if (Request::path()=='auth#register' && count($errors) > 0)
@foreach ($errors->all() as $error)
<p class="alert alert-danger alert-dismissible fade show" role="alert">{{ $error }}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</p>
@endforeach
@endif
</div>
在您的控制器中出现“登录”标签错误:
if ($validator->fails()) {
return redirect('/auth#login')
->withErrors($validator, 'login')
->withInput();
}
在您的控制器中出现“注册”标签错误:
if ($validator->fails()) {
return redirect('/auth#register')
->withErrors($validator, 'register')
->withInput();
}