Flash Session在Laravel 5.2.39中无法工作


Flash Session is not working in Laravel 5.2.39

我使用下面的代码从控制器重定向到路由,但它不起作用。视图无法从会话中获取值。

GameController

public function index()
{
    return view('game.index');
}
public function sync(){
    return redirect('/game')->with('status','[SUCCESS]');
}
<<p> 视图/strong>
{{ session('status') }}
        @if(session('status'))
            asdasd
            @if(session('status') === '[SUCCESS]')
                <div class="row">
                    <div class="col-lg-12">
                        <div class="alert alert-success">Synced successfully!</div>
                    </div>
                </div>
            @elseif(session('status') === '[FAILED]')
                <div class="row">
                    <div class="col-lg-12">
                        <div class="alert alert-danger">Sync failed!</div>
                    </div>
                </div>
            @endif
        @endif

我运行了php artisan route:list,结果如下所示

截图

这是我的route.php

Route::get('/', function () {
    return redirect('/home');
});
Route::get('/home', 'HomeController@index');
Route::get('/game', 'GameController@index');
Route::get('/game/sync', 'GameController@sync');

编辑

尝试运行此路由

Route::get('/test', function () {
    Session::put('status', 'Just a test');
    dd(Session::all());
});
结果

array:4 [▼
  "_token" => "9ZvL7FTzFt05rYXPviqhizohfFC6KWGqwMJVgYid"
  "_previous" => array:1 [▶]
  "flash" => array:2 [▶]
  "status" => "Just a test"
]

从你发布的代码中,我创建了一个新的版本相同的Laravel项目,5.2.39.

这是完整的工作代码。

php artisan route:list

+--------+----------+-----------+------+-------------------------------------------+------------+
| Domain | Method   | URI       | Name | Action                                    | Middleware |
+--------+----------+-----------+------+-------------------------------------------+------------+
|        | GET|HEAD | /         |      | Closure                                   | web        |
|        | GET|HEAD | game      |      | App'Http'Controllers'GameController@index | web        |
|        | GET|HEAD | game/sync |      | App'Http'Controllers'GameController@sync  | web        |
|        | GET|HEAD | home      |      | App'Http'Controllers'HomeController@index | web        |
+--------+----------+-----------+------+-------------------------------------------+------------+

GameController.php

// GameController.php
<?php
namespace App'Http'Controllers;
class GameController extends Controller {
    public function index()
    {
        return view('game.index');
    }
    public function sync() {
        return redirect('/game')->with('status','[SUCCESS]');
    }
}

资源/视图/游戏/index.blade.php

    {{ session('status') }}
    @if(session('status'))
        asdasd
        @if(session('status') === '[SUCCESS]')
            <div class="row">
                <div class="col-lg-12">
                    <div class="alert alert-success">Synced successfully!</div>
                </div>
            </div>
        @elseif(session('status') === '[FAILED]')
            <div class="row">
                <div class="col-lg-12">
                    <div class="alert alert-danger">Sync failed!</div>
                </div>
            </div>
        @endif
    @endif

然后,我在浏览器中进入/game/sync

输出:

[SUCCESS] asdasd
Synced successfully!

显然我的环境设置有问题。所以我重新安装了所有的东西,现在一切正常。