使用codeigniter构建电子商务网站。 我在控制器上有一个方法,用户在结账前输入他们的交货信息,该方法保存交货信息并创建一个名为“orderid”的新会话变量,其中orderid的值为其值。设置会话变量后,方法重定向到结账控制器,我从会话中检索“orderid”,从数据库中检索订单,以便用户在付款前确认信息。
问题是,当用户被重定向到结帐页面时,他们看不到他们的交付数据。 什么时候这样做
echo $this->session->userdata('orderid');
我可以看到价值 但是,当我将它传递给我的方法,该方法应该返回一个数据数组
$order = $this->orders->get_order($this->session->userdata('orderid'));
print_r($order);
我得到一个空数组array()
刷新结帐页面时,它的行为正确。 可能是什么问题
答案 0 :(得分:0)
要使会话发挥作用,您必须将$this->load->library('session');
添加到__contruct()
功能
public function __construct() {
parent::__contruct();
$this->load->library('session');
}
答案 1 :(得分:-1)
您无法像这样访问会话值
$order = $this->orders->get_order($this->session->userdata('orderid'));
您可以使用以下方法,它可以正常工作
$orderid=$this->session->userdata('orderid');
$order = $this->orders->get_order($orderid);
** 请在构造函数或此函数中记住加载会话库
$this->load->library('session');