在Laravel 5中不发送会话变量

时间:2016-10-14 18:07:11

标签: php laravel laravel-5 session-variables

我有一个Laravel应用程序,并且会发生与会话变量相关的奇怪事情。我在控制器中有一个方法来检查一些输入,并根据某些条件决定是继续还是只返回(并且就在这里我的问题),当我做return redirect()->back()时我想要发送一个变量一个Json,我简单地说:

$msg=json_encode([
     'status' => 'failed',
     'field'=>'mail'
 ]);
return redirect()->back()->with('msg',$msg);

所以,它重定向得非常好,但在视图中我有:

@if ( Session::has('msg') )
   //come stuffs
@endif

但似乎没有传递msg变量。根据Laravel文档,当使用redirect back时,变量可通过Session

访问

3 个答案:

答案 0 :(得分:1)

及其'我测试时为我工作。 也许你的会话没有存储数据。请检查您的会话是否有效。 我的测试输出

   @if ( Session::has('msg') )
       {{ session('msg') }}
    @endif 

enter image description here

答案 1 :(得分:0)

我在Laravel 5.2上的一个项目中也遇到过这个问题。我不知道它是否是一个错误或是否已被修复,但我最终通过不使用redirect()->back()来解决它。我认为它可能与浏览器的缓存机制有关。如果你最终找到原因我会感兴趣。

答案 2 :(得分:0)

我认为您需要在启动重定向之前使用=>

阅读HTTP Session

上的文档