使用 Laravel 表单验证功能时,我们可以在 blade 模板中使用下面的方式显示所有错误信息:

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

但是上面的代码是循环输出所有的错误信息,比如我们在控制器中定义了如下代码,那么有没有办法输出指定/特定的错误信息呢?

if (! Auth::attempt($this->only('username', 'password'), $this->boolean('remember'))) {
    RateLimiter::hit($this->throttleKey());

    throw ValidationException::withMessages([
        'notice' => trans('用户名或密码错误!'),
    ]);
}

答案是肯定的,我们可以通过下面的方式,只输出 notice error。

@if ($errors->has('notice'))
    <div class="alert alert-danger">
        @foreach ($errors->get('notice') as $error)
            {{ $error }}
        @endforeach
    </div>
@endif