Laravel5之Session

本文详细介绍了Laravel框架中Session的配置方法及其实例应用,包括基于数据库的Session实现,通过简单步骤展示了如何使用Session进行数据存储与获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有关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 Illuminate\Support\Facades\Session;

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方式,其他种类的这里就不再赘述,可以到官方文档中查看其他类别的使用方法。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值