Laravel 4 - 重定向闪存消息不起作用

bla*_*zej 10 php laravel laravel-4

在我的Laravel 4项目中,我试图在重定向时设置flash消息,如下所示:

return Redirect::route('main')->with('flash', 'Message here.');
Run Code Online (Sandbox Code Playgroud)

(我查看了以下内容:Laravel 4 - Redirect ::带参数的路由).

重定向正确发生.在我的"主"视图中,我有这段代码来显示flash消息:

@if (Session::has('flash'))
  <div class="flash alert">
    <p>{{ Session::get('flash') }}</p>
  </div>
@endif
Run Code Online (Sandbox Code Playgroud)

但它不起作用: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)
Run Code Online (Sandbox Code Playgroud)

怎么了?这似乎是相当简单的代码......

Jef*_*ert 21

当您使用数据重定向时,您保存的数据将"闪存"到会话中(这意味着它将仅在下一个请求期间可用,请参阅:http://laravel.com/docs/session#flash-data).

我会担心使用'flash'闪存数据密钥,因为Laravel将其闪存数据存储在名称为的密钥中'flash'.尝试将您的名字改为其他名称.你可能会混淆Laravel关于Session::get它应该尝试加载数据的位置.