如何在codeigniter中将数组保存到会话中?

时间:2016-10-17 07:33:50

标签: php arrays codeigniter session

我想在codeigniters的会话助手中保存一个数组,但我一直在

我想在一个新的会话变量中保存一个数组数组,以便我可以在另一个控制器中查看该会话,如果我需要它或在另一个视图中。

我的会话在我的配置文件中自动加载。

这段代码在我的视图文件中。 $ arr = array();

#container > div > div:nth-child(2) > div:nth-child(2)  > div > div:nth-child(2)  > div:nth-child(2)  > div > section > ul > li:nth-child(2)
  

致命错误:调用未定义的方法CI_Session :: new_session_name()

1 个答案:

答案 0 :(得分:0)

假设某位特定用户登录您的网站。经过身份验证后,您可以将其用户名和电子邮件地址添加到会话中,从而使您可以全局使用这些数据,而无需在需要时运行数据库查询。

您可以简单地将数据分配给$ _SESSION数组,与任何其他变量一样。或者作为$ this-> session的属性。

或者,也可以使用将其指定为“userdata”的旧方法。然而,这会将包含新数据的数组传递给set_userdata()方法:

$this->session->set_userdata($array);
  

您的代码应为

foreach($value->result as $val){}
    if($val->somethinghappenedtrue){
        $arr[] = array('data' => $thethingthathappened);
    }
}
// since my session is autoloaded I don't need to initialize
//session if I'm not wrong $this->load->session etc...
$this->session->set_userdata($arr);

如果要一次添加一个userdata值,set_userdata()也支持以下语法:

$this->session->set_userdata('some_name', 'some_value');

如果要验证会话值是否存在,只需使用isset():

进行检查 如果'some_name'项不存在或为NULL,则

//返回FALSE, //否则为TRUE:

isset($_SESSION['some_name'])