【问题标题】:Laravel: How to use session in the whole app?Laravel:如何在整个应用程序中使用会话?
【发布时间】:2017-09-14 19:38:27
【问题描述】:

我想在 Laravel 中使用会话,例如在普通 PHP 中使用 $_SESSION['test']

我在 Laravel 中尝试过,但是当我在另一个 Controller 中使用会话时,数据没有存储。

// 用户控制器

class UserController extends Controller
{
    public function testSession(Request  $request)
    {
       // ...
    Session::set( 'id','1' );
    $request->session()->put('username', 'simo');

    }
}

另一个控制器

class AnotherController extends Controller
{
    public function GetMySession(Request  $request)
    {
       // ...
    dd($request->session()->all());// 

    }
}

现在用户名和 id 不会存储在 Session 中。为什么?

【问题讨论】:

  • 两个路由都在routes/web.php 中吗?还是一条 API 路由?
  • 你检查过你的 config/session.php 吗?另请查看laravel.com/docs/5.4/session 链接了解更多信息。
  • 现在当我在 $request->session()->put('username', 'simo'); 之后使用 session::save() 时它可以工作了并且数据存储在会话中
  • 尝试使用全局session() 而不是$request->session

标签: php laravel session laravel-5


【解决方案1】:

在laravel中,使用会话use Session;

当你想设置会话时,使用 set() 方法作为 -

Session::set('variableName', $value);

当你想获得任何会话时,像这样获得它 -

Session::get('variableName');

如果你想再次重置它,那么使用 put() 方法 -

Session::put('variableName', $value);

希望这会对你有所帮助。

【讨论】:

  • 好的,但是如果你要使用 Session::set('variableName', $value);那么您不需要 session::save() 方法,您可以在整个项目中获取该会话。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-05
  • 1970-01-01
  • 2014-09-30
  • 1970-01-01
  • 2021-10-04
  • 2018-03-20
  • 2022-11-05
相关资源
最近更新 更多