我有一个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
答案 0 :(得分:1)
及其'我测试时为我工作。 也许你的会话没有存储数据。请检查您的会话是否有效。 我的测试输出
@if ( Session::has('msg') )
{{ session('msg') }}
@endif
答案 1 :(得分:0)
我在Laravel 5.2上的一个项目中也遇到过这个问题。我不知道它是否是一个错误或是否已被修复,但我最终通过不使用redirect()->back()
来解决它。我认为它可能与浏览器的缓存机制有关。如果你最终找到原因我会感兴趣。
答案 2 :(得分:0)
我认为您需要在启动重定向之前使用=>