升级会话
文档
已更改的内容
只有方法名称和库的加载等小事情发生了变化。
数据库驱动程序中会话表的定义已更改。
升级指南
无论你在哪里使用会话库,用
$session = session();
替换$this->load->library('session');
。从那时起,你必须用
$session
替换以$this->session
开头的每一行,后面跟新的方法名。要访问会话数据,请使用语法
$session->item
或$session->get('item')
,而不是 CI3 语法$this->session->name
。要设置数据,请使用
$session->set($array);
,而不是$this->session->set_userdata($array);
。要删除数据,请使用
unset($_SESSION['some_name']);
或$session->remove('some_name');
,而不是$this->session->unset_userdata('some_name');
。要将会话数据标记为闪存数据,它只对下一次请求可用,请使用
$session->markAsFlashdata('item');
,而不是$this->session->mark_as_flash('item');`
如果你使用数据库驱动程序,你需要重新创建会话表。请参阅 DatabaseHandler 驱动程序。
代码示例
CodeIgniter 版本 3.x
<?php
$this->load->library('session');
$_SESSION['item'];
$this->session->item;
$this->session->userdata('item');
CodeIgniter 版本 4.x
<?php
$session = session();
$_SESSION['item']; // But we do not recommend to use superglobal directly.
$session->get('item');
$session->item;
session('item');