我使用下面的代码从控制器重定向到路由,但它不起作用。视图无法从会话中获取值。
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!
显然我的环境设置有问题。所以我重新安装了所有的东西,现在一切正常。