2017-01-05 4 views
1

После обновления с Laravel 5.2 до 5.3 я не могу добавить Flash-сообщение.Laravel 5.2 обновление до 5.3 сообщение об ошибке флэш-памяти

Это код, который мы используем:

return redirect()->back()->with('alert-success', 'My Message'); 

И для отображения сообщения:

@foreach (['danger', 'warning', 'success', 'info'] as $msg) 
    @if(Session::has('alert-' . $msg)) 
     <div class="alert alert-{{ $msg }} alert-dismissible"> 
      <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> 
      {{ Session::get('alert-' . $msg) }} 
     </div> 
    @endif 
@endforeach 

Мы также не можем использовать регистрационные сообщения, если провайдер неправильные учетные данные:

<form class="form-horizontal" role="form" method="POST" action="{{ url('/login') }}"> 
    {{ csrf_field() }} 
    <div class="form-group has-feedback {{ $errors->has('email') ? ' has-error' : '' }}"> 
     <input type="email" name="email" class="form-control" placeholder="Email" value="{{ old('email') }}"> 
     <span class="glyphicon glyphicon-envelope form-control-feedback"></span> 
     @if ($errors->has('email')) 
      <span class="help-block"> 
       <strong>{{ $errors->first('email') }}</strong> 
      </span> 
     @endif 
    </div> 
    <div class="form-group has-feedback {{ $errors->has('password') ? ' has-error' : '' }}"> 
     <input type="password" name="password" class="form-control" placeholder="Password"> 
     <span class="glyphicon glyphicon-lock form-control-feedback"></span> 
     @if ($errors->has('password')) 
      <span class="help-block"> 
       <strong>{{ $errors->first('password') }}</strong> 
      </span> 
     @endif 
    </div> 
    <div class="row"> 
     <!-- /.col --> 
     <div class="col-xs-12"> 
      <button type="submit" class="btn btn-primary btn-block btn-flat"> 
       Login 
      </button> 
     </div> 
    </div> 
</form> 

ответ

1

Если вы использовали 5.2.27 или ниже и переместились в 5.3, наиболее определенно вы использовали web промежуточного слоя в файле маршрутов. Вам нужно move web middleware from Laravel 5.3 routes to make sessions work, потому что с 5.2.27, если вы пытаетесь добавить его вручную в web.php, он тормозит связанные сессии.

+0

К сожалению, это не исправление моей проблемы, не работает ... –

+0

Не возвращайте промежуточное программное обеспечение 'web' в' web.php', удаляйте его. Попробуйте [очистить весь кеш Laravel] (http://stackoverflow.com/questions/37259103/laravel-application-is-not-working-after-uploading-to-the-server/37259162#37259162). Кроме того, проверьте 'app \ Http \ Kernel.php'. В 5.3 и последнем 5.2.x в другом. [Здесь] (https://github.com/laravel/laravel/blob/master/app/Http/Kernel.php), как это выглядит в 5.3. –

0

Решение может быть отредактировано в Kernel.php.

protected $middleware = [ 
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, 

    \Illuminate\Session\Middleware\StartSession::class, 
    \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
]; 

Когда я добавил StartSession и ShareErrorsFromSession он работал как старый сайт будет.

Смежные вопросы