Laravel 5.6中的Validator未提供$ error消息

时间:2018-06-17 21:13:25

标签: laravel-5.6

我在Laravel 5.6编码,我有一个名为errors.blade的布局文件,内容为:

@if(session('status'))
    <div class="alert alert-dismissible alert-success">
        <button type="button" class="close" data-dismiss="alert">&times;</button>
        {{ session('status') }}
    </div>

@endif
@if(count($errors))
    <div class="alert alert-dismissible alert-danger">
        <button type="button" class="close" data-dismiss="alert">&times;</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中得到这个:

enter image description here

所有页面都会发生这种情况。我不知道究竟是什么问题。状态消息有效,但此处的错误消息不起作用。它与验证器的任何错误或甚至与:

一起发生
  

return redirect() - &gt; route('admin-login') - &gt; withErrors('不正确   用户名或密码。');

再多一点信息,我正在使用一个警卫管理员和守卫默认的laravel网络来分隔管理员和普通用户的会话。我不知道这是否可能是原因。非常感谢任何帮助,以便为我和任何其他已经运行或可能遇到此问题的用户删除此障碍。

1 个答案:

答案 0 :(得分:1)

将@foreach更改为:

  

@foreach($ errors-&gt; all()为$ error)