如果使用dd方法,则不会设置Laravel 5.4会话

时间:2017-06-04 04:30:30

标签: php laravel laravel-5

我正在使用laravel 5.4。在控制器的方法中,我在会话中设置了一个值。如果我在设置会话后立即调用dd() dd()显示我刚刚设置的会话的所有会话。但是,如果我从另一个方法获取会话,则会话不可用。如果我从会话设置器方法中删除dd(),我正在正确地进行会话。

我的代码如下:

public class TestController{
  public function setSession(){
    session(['test_key' => 'test_value']);//setting up the session
    dd(session()->all());//getting the session properly here
  }

  public function showSession(){
    dd(session()->all());//Here we are not getting the session
  }
}

如果我们从dd()会话中移除setSession(),它就能正常运行。这是Laravel的一个错误还是故意的。我很想知道这个事实的根本原因。感谢

2 个答案:

答案 0 :(得分:3)

dd()表示" dump&死"并在其实现中使用die(),它立即终止框架,并且不允许Laravel正确完成请求并保存会话。您可以使用dump()来显示dd()之类的信息,并且不会在之后关闭内核。

答案 1 :(得分:1)

删除此行dd(session()->all())

从setSession()获取

并再次尝试。