如何在 laravel 中回显 session 变量?

How to echo session variable in laravel?

我创建了一个 session 变量,它的值在 laravel blade 中使用平面 javascript。但是当我试图在我的 blade 页面中获取 session 变量值时,它什么也不显示。我的代码是:

@extends('ui.layout.app')

@section('content')
 <div class="get-session">

    <select id="setSession" onchange="myFunction()">
      <option value="5">5</option>
      <option value="10">10</option>
    </select>
    <p id="get_session"></p>
    here : {{ Session::get('currency_code')}}
 </div>

 <script type="text/javascript">
    function myFunction() {
      var x = document.getElementById("setSession").value;
      sessionStorage.setItem("currency_code", x);
      document.getElementById("get_session").innerHTML = "You selected: " + x;
    }
  </script>  
@endsection

我猜您是将会话变量放入正常的 php(基于 cookie)会话。但是您想通过使用 laravel-session facade 来接收它们。那不一样!

您可以配置laravel使用不同的“会话驱动程序”作为“文件”、“cookie”甚至像“redis”这样的队列服务。

这就是为什么你的 Session->get(...) 不会在没有 laravel 的情况下恢复你设置的值。

要解决创建用于将数据保存到会话的路由,请通过 javascript post 调用传递给该路由。使用 laravel 存储外观将该请求负载放入会话中。比在您的视图中显示它。

另见 https://laravel.com/docs/8.x/session