在我的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)
发生了什么事?这似乎是相当简单的代码...
答案 0 :(得分:21)
当您使用数据进行重定向时,您保存的数据将会被闪烁&#39;进入会话(意味着它仅在下一个请求期间可用,请参阅:http://laravel.com/docs/session#flash-data)。
我会谨慎使用'flash'
作为闪存数据密钥,因为Laravel将其闪存数据存储在名为'flash'
的密钥中。尝试将您的名字改为其他名称。您可能会对Laravel的Session::get
感到困惑,因为它应该尝试从哪里加载数据。
答案 1 :(得分:1)
在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
您需要访问会话的位置