牛骨文教育服务平台(让学习变的简单)
博文笔记

Laravel5中的Session

创建时间:2016-09-01 投稿人: 浏览次数:1709

有关Session的配置文件是aonfig/session.php文件。


如果不使用基于数据库、cookie或者Redis缓存类的Session的话,不需要改配置文件就可以使用了。


下面一个简单的使用Session的例子

1.定义路由


    //创建Session变量  
    Route::get("/sessionCreate", "UserController@sessionCreate");  
    //取得Session变量  
    Route::get("/sessionGet", "UserController@sessionGet");  

2.在UserController.php中创建两个函数,并引入Session所在的命名空间

    use IlluminateSupportFacadesSession;  



    public function sessionCreate(){  
            //使用put方法直接创建Session变量  
            Session::put("ID", 1);  
            Session::put("USERNAME", "徐文志");  
            //使用push方法创建Session数组  
            Session::push("user.id", 1);  
            Session::push("user.name", "azxuwen");  
            echo "Session Created!!";  
        }  
      
        public function sessionGet(){  
            //使用get方法获取session变量或session数组  
            echo Session::get("ID");  
            echo Session::get("USERNAME");  
            var_dump(Session::get("user"));  
        }  

请求方式:http://localhost/laravel/public/index.php/sessionCreate    然后在请求  http://localhost/laravel/public/index.php/sessionGet 就会得到想要的结果。




基于数据库的Session

既然使用了数据库,就要保证Laravel已经配置好了config/database.php,也就是说已经可以连接数据库了,我这里已经连接好了Mysql数据库。


1.使用Artisan命令在数据库中新建3个数据表,这一点还是很简单的Laravel已经给我们提供好了命令,依次执行以下3个命令。

    php artisan session:table  
      
    composer dump-autoload  
      
    php artisan migrate  

执行完之后,会发现Mysql中新建了三张表,分别是 migrations, password_resets和sessions,先猜一下Session数据会保存在sessions表中,先不要管这三张表是用来干嘛的。


2.既然使用了数据库Session,这时就需要修改config/session.php了,将session驱动修改为

    "driver" => "database",  

请求方式:http://localhost/laravel/public/index.php/sessionCreate    然后在请求  http://localhost/laravel/public/index.php/sessionGet 还是跟上面一样的结果,但是唯一不同的是现在打开sessions数据表,会发现新增了条记录。




Laravel对于其他使用Session的驱动进行了以下定义

    file - sessions 将保存在 storage/framework/sessions。  
    cookie - sessions 将安全保存在加密的 cookies 中。  
    database - sessions 将保存在你的应用程序数据库中。  
    memcached / redis - sessions 将保存在一个高速缓存的系统中。  
    array - sessions 将单纯的以 PHP 数组保存,只存活在当次请求。  

默认使用的是file,上面又尝试了database方式,其他种类的这里就不再赘述,可以到官方文档中查看其他类别的使用方法。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。