Laravel 5.5登录错误未显示

fun*_*err 6 php laravel blade laravel-5

这是我的login.blade.php

@if(Session::get('errors')||count( $errors ) > 0)
   @foreach ($errors->all() as $error)
      <h1>{{ $error }}</h1>
  @endforeach
@endif
Run Code Online (Sandbox Code Playgroud)

这是我的LoginController.php:

protected function sendFailedLoginResponse(Request $request)
{
    return redirect()->back()
        ->withInput($request->only($this->username(), 'remember'))
        ->withErrors([
            $this->username() => 'ERRORS',
        ]);
}
Run Code Online (Sandbox Code Playgroud)

这是我的web.php(路由)

// I am customizing the login to do extra checks, 
// but I still need the basic auth scaffolding.
Auth::routes(); 
...
Route::group(['middleware' => 'web'], function () {
  Route::view('/login', 'auth.login');
  Route::post('/login', 'Auth\LoginController@login')->name('login');
});
Run Code Online (Sandbox Code Playgroud)

当我尝试以错误的用户身份登录时,视图中没有显示错误,这是我做错了什么?

更新
我试图更改login.blade.php,就像@Seva Kalashnikov所建议的那样,没有运气。
我也尝试过@Akshay Kulkarni的建议,但没有运气。

Sev*_*kov 8

尝试Session::get('errors')iflogin.blade.php 中的语句中删除

@if(count( $errors ) > 0)
    @foreach ($errors->all() as $error)
       <h1>{{ $error }}</h1>
    @endforeach
@endif
Run Code Online (Sandbox Code Playgroud)

ShareErrorsFromSession中间件,由 web 中间件组提供,负责$error视图变量,因此它将始终被定义(链接在这里

[更新]

正如@Ohgodwhy 所指出的,你需要使用@if ($errors->any()) Example

所以在你的情况下,它将是:

@if($errors->any())
    @foreach ($errors->all() as $error)
       <h1>{{ $error }}</h1>
    @endforeach
@endif
Run Code Online (Sandbox Code Playgroud)


fun*_*err 5

好吧,几个小时后我终于找到了!我从头开始创建了一个 Laravel 项目,并进行了比较以找到罪魁祸首:

app/Http/Kernel.php中,确保删除 StartSession 中间件:

protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
    \App\Http\Middleware\TrimStrings::class,
    \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
    \App\Http\Middleware\TrustProxies::class,
    \Illuminate\Session\Middleware\StartSession::class, // <-- Remove this
];
Run Code Online (Sandbox Code Playgroud)

说明:我把它放在那里是因为我读到我必须将它作为中间件(如果我没有Route::group(['middleware' =>'web']在 web.php 中使用包装器),我想我把它忘在那里了。我认为将其放在那里使用 web.php 中的包装器会在错误会话到达视图之前以某种方式截断它。