【问题标题】:Laravel 4 - creating a custom Session DriverLaravel 4 - 创建自定义会话驱动程序
【发布时间】:2013-09-13 00:44:11
【问题描述】:

我想在 Laravel 4 中创建一个自定义(数据库)会话驱动程序。现有的 Laravel 数据库驱动程序只允许具有一个数据字段的静态格式的数据库表,而我有一个具有多个字段的现有数据库表和格式。

我希望能够以某种方式使用 Session::extend 函数,就像使用 Auth::extend 一样,但情况似乎并非如此。似乎在 global.php 文件甚至运行之前已经创建了会话。

到目前为止,我唯一可行的解​​决方案是复制粘贴大部分相关文件(PdoSessionHandler、SessionManager 和 SessionServiceProvider),然后将它们粘在一起。这显然是一个会在未来产生问题的解决方案。

如何创建自己的自定义会话驱动程序?

【问题讨论】:

    标签: php mysql session laravel laravel-4


    【解决方案1】:

    您是正确的,您需要扩展 SessionHandler 并创建一个新的 ServiceProvider,然后将配置设置为将会话指向您的新提供程序。 您应该能够使用新处理程序中的新数据库字段来发挥您的特殊魔力。

    class CompanySessionHandler extends DatabaseSessionHandler {
    
        /**
         * {@inheritDoc}
         */
        public function read($sessionId) 
        {
            //read from your database
        }
        /**
         * {@inheritDoc}
         */
        public function write($sessionId, $data) 
        {
            //write to your database
        }
    }
    

    我不知道你还在寻找什么。

    【讨论】:

      猜你喜欢
      • 2013-06-08
      • 2010-09-25
      • 1970-01-01
      • 2013-05-31
      • 2017-06-02
      • 2015-11-21
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      相关资源
      最近更新 更多