0

有人可以快速帮助我使用 CodeIgniter 的语法。我需要访问存储在会话的用户数据中的数组,但我无法找出正确的语法。

<?php echo $this->session->userdata['user_session']['first_name']; ?>

给我这个错误:

致命错误:不能将 stdClass 类型的对象用作数组

此问题中给出的所有答案都不起作用: Access array variable in session (CodeIgniter)

4

3 回答 3

0

我找到了正确的语法。好吧,至少有一种方法可以解决它。@Matt GrubB 是最接近的,让我走上了正确的道路。

$temp_session = $this->session->userdata('user_session');
echo $temp_session->first_name;

由于userdata是在我查询数据库时创建的一个充满信息的对象,因此访问数据的最简单方法是将其放入另一个临时数组中。然后你必须刺伤它。我一直在尝试做$this->temp_session->first_name或类似的事情时跌跌撞撞。

于 2013-07-21T16:23:39.650 回答
0

这是您获取会话数据的方式:

echo $this->session->userdata('first_name');
于 2013-07-21T03:17:31.893 回答
0

自从我在 Codeigniter 工作以来已经有一段时间了,但如果我没记错的话,当你像你所说的那样存储一个数组时,你会这样称呼它:

$this->session->userdata("user_session")['first_name'];

让我知道这是否有效?

或者您可以将该数据存储到一个变量中,然后以这种方式调用该数组。像这样:

$data = array("bar" => "the_value");
$this->session->set_userdata("foo", $data);
$foo = $this->session->userdata("foo");
echo $foo["bar"]; //Outputs the_value

让我知道这是否有帮助。

但是,只是为了让您知道.. 通常,存储会话数据如下:

$this->session->set_userdata("first_name", "value");

真的没有必要在 userdata 中设置自己的数组,因为这通常是 userdata 数组的用途。

于 2013-07-21T03:19:34.937 回答