在我的Laravel 4项目中,我试图在重定向时设置flash消息,如下所示:
return Redirect::route('main')->with('flash', 'Message here.');
(我看了下面的内容:Laravel 4 - Redirect::route with parameters)。
重定向正确发生。在我的"主"视图中,我有这个代码来显示flash消息:
@if (Session::has('flash'))
<div class="flash alert">
<p>{{ Session::get('flash') }}</p>
</div>
@endif
但是它不起作用:Session::get('flash')
返回一个数组,而不是字符串。如果我插入一个对var_dump(Session::get('flash'))
的调用,我得到这样的输出:
array (size=2)
'new' =>
array (size=0)
empty
'old' =>
array (size=1)
0 => string 'flash' (length=5)
发生了什么事?
当你用data重定向时,你保存的数据将被'闪现'到会话中(这意味着它只会在下一次请求时可用,参见:http://laravel.com/docs/session#flash-data)。
我会小心使用'flash'
作为闪存数据键,因为Laravel将其闪存数据存储在已经具有'flash'
名称的键中。试着改个名字吧。您可能会对Laravel的Session::get
感到困惑,因为它应该尝试从哪里加载数据。
在routes.php文件中尝试在
Route::group(['middleware' => ['web']], function () {
Route::get('/', [
'as' => 'home',
'uses' => 'PagesController@home'
]);
Route::resource('tasks', 'TasksController');
});
之后使用。
@if (Session::has('flash'))
<div class="flash alert">
<p>{{ Session::get('flash') }}</p>
</div>
@endif
需要访问会话