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

时间:2014-03-13 18:34:21

标签: php laravel laravel-4

在我的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)

发生了什么事?这似乎是相当简单的代码...

2 个答案:

答案 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

您需要访问会话的位置