我在Laravel 5.6编码,我有一个名为errors.blade的布局文件,内容为:
@if(session('status'))
<div class="alert alert-dismissible alert-success">
<button type="button" class="close" data-dismiss="alert">×</button>
{{ session('status') }}
</div>
@endif
@if(count($errors))
<div class="alert alert-dismissible alert-danger">
<button type="button" class="close" data-dismiss="alert">×</button>
@foreach($errors as $error)
<ul>
<li>{{ $error }}</li>
</ul>
@endforeach
</div>
@endif
我的控制器将数据插入数据库并使用$ this-&gt; validate是:
public function store()
{
$this->validate(request(), [
'first_name' => 'required',
'last_name' => 'required',
'email' => 'required|email',
'username' => 'required',
'password' => 'required|confirmed',
'discord' => 'required'
]);
Admin::create([
'first_name' => request('first_name'),
'last_name' => request('last_name'),
'email' => request('email'),
'username' => request('username'),
'password' => bcrypt(request('password')),
'discord' => request('discord'),
]);
return redirect('/admin/login')->with('status', 'Install successfully completed. Use the form below to login to your account.');
}
正如您所看到的,我正在发回一个会话,其中包含我已设置在我的错误文件中显示的状态名称,该会话完美无缺。但是,一旦我将字段留空或者密码不匹配,我就会从实际的$ errors中得到这个:
所有页面都会发生这种情况。我不知道究竟是什么问题。状态消息有效,但此处的错误消息不起作用。它与验证器的任何错误或甚至与:
一起发生return redirect() - &gt; route('admin-login') - &gt; withErrors('不正确 用户名或密码。');
再多一点信息,我正在使用一个警卫管理员和守卫默认的laravel网络来分隔管理员和普通用户的会话。我不知道这是否可能是原因。非常感谢任何帮助,以便为我和任何其他已经运行或可能遇到此问题的用户删除此障碍。
答案 0 :(得分:1)
将@foreach更改为:
@foreach($ errors-&gt; all()为$ error)