【问题标题】:Session variable not available on second page requests会话变量在第二页请求上不可用
【发布时间】:2019-06-07 04:37:45
【问题描述】:

我正在尝试借助会话变量来存储预订详细信息。在第一个函数中:

public function hold(Request $request){
         $details = [
                'times' => $arr,
                'subTotal' => $subTotal,
                'tax' => $tax
            ];
            $request->session()->forget('cart');
            $request->session()->put('cart',$details);
}

接下来,它将被发布到同一控制器的另一个功能。到目前为止,会话可用。

public function checkout(){
    dd(session()->all());
}

下一条路线在支付控制器上。这是与前一个控制器不同的另一个控制器。这里,会话变量为空。

public function createPayment(){
    dd(session()->all());
}

我做错了什么?如何在这个 createPayment 函数中访问会话?

【问题讨论】:

  • 需要更多信息。向我们展示您的kernel.php。同时向我们展示您的route guards
  • 这可能有一些价值:laracasts.com/discuss/channels/laravel/…
  • 所以基本上如果你的dd(session()->all() 仍然在checkout() 中,DD 将在 laravel 的服务容器保存会话之前终止进程。

标签: php laravel session


【解决方案1】:

放置默认数组

$request->session()->put($details);

【讨论】:

    【解决方案2】:

    在查看Ohgodwhy 评论后,我重新检查了我的路线,然后我意识到我之前已经通过 api 完成了这个支付模块。所以,我的错误是路由到 api 而不是 web。因此,无法将会话变量检索到 API 路由。

    I was using API and web routes so session variable were not available across.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 2019-09-29
      相关资源
      最近更新 更多