2016-04-12 5 views
1

Я установил свежий laravel 5.2.29.
Мой routes.php:Laravel 5.2 перенаправление не сохраняет флэш-сообщения

Route::group(['middleware' => ['web']], function() { 
    Route::get('/a', function() { 
     return redirect('/b', 302)->with('error', 'error description'); 
    }); 

    Route::get('/b', function() { 
     return session('error'); 
    }); 
}); 

Когда я иду в /a в браузере он перенаправляет меня /b, но не показывает мне ничего. Что мне делать с этим показать мне error description? Или почему он не хранит данные флэш-памяти?

ответ

4

В принципе, если вы используете Laravel 5.2.27 и выше, не используйте группу промежуточного программного обеспечения. Он применяется для вас по умолчанию, как вы можете видеть в app/Http/RouteServiceProvider.php:

protected function mapWebRoutes(Router $router) 
{ 
    $router->group([ 
     'namespace' => $this->namespace, 'middleware' => 'web', 
    ], function ($router) { 
     require app_path('Http/routes.php'); 
    }); 
} 

Если попытаться снова применить веб-промежуточное программное обеспечение, вы будете работать в странные проблемы, как то, что вы в настоящее время сталкиваются.

+0

Спасибо, это работает. Но странно, что в моем втором проекте все маршруты используют промежуточное программное обеспечение «web», и все работает нормально. Версия второго проекта тоже 5.2.29. – melihovv

+1

@melihovv Если вы обновили до версии 5.2.29 из старой версии, это не повлияет на вас, потому что обновляется только ваш каталог 'vendor'. Это влияет только на новые новые установки Laravel. Другими словами, если вы запустите обновление для композитора, каталог 'app' никогда не будет изменен, а последний' RouteServiceProvider' будет находиться в каталоге 'app'. –