如何在codeigniter中使用单行将数据列表存储到会话中

时间:2018-03-31 06:44:48

标签: php session codeigniter-3

我想将数据列表存储到单行会话中,然后如何在view.userData变量包含数据列表中提取数据。我可以存储我知道的下面的数据。但是不是写多行我可以用单行存储。如何提取要在视图上使用的数据。谢谢提前。

          $userData=$google_oauthV2->userinfo->get();
          $this->session->set_userdata('userdata',$userData['id']);
          $this->session->set_userdata('username',$userData['given_name'];

我可以存储如下数据吗?

      $this->session->set_userdata('userdata',$userData);

如何在视图上使用变量,它什么都不提供

 <?php if(!empty($userdata['given_name'])){?>
    <li><a href="#">HI &nbsp;<?php echo $userdata['given_name'];?></a></li>
  <?php }

3 个答案:

答案 0 :(得分:2)

在会议上阅读Codeigniter用户指南后,我们会解释这一点(我们都有),您可以执行以下操作...

这是演示代码,非常适合测试这样的东西。

查看 auth_view.php,因为缺少更好的名称

// $userData=$google_oauthV2->userinfo->get();
// Recreate the Array from google_oauthV2
$userData['id'] = 1;
$userData['given_name'] = 'Fred Flintstone';

$this->session->set_userdata($userData); // Save ALL the data from the array
var_dump($this->session->userdata()); // DEBUG-  Lets look at what we get!

$data = $this->load->view('auth_view', NULL, true);
echo $data;

控制器

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

这有助于解释可能性吗?

我强烈建议您阅读用户指南,因为我确实得到了这个答案。

答案 1 :(得分:0)

我很难回答,因为我不知道set_userdata()函数是如何工作的,即它会接受一个数组。

但你可以试试:

$userData=$google_oauthV2->userinfo->get();
$this->session->set_userdata('data',$userData);

在视图页面上:

<?php if(!empty($data['userData']['given_name'])){?>
<li><a href="#">HI &nbsp;<?php echo $data['userData']['given_name'];?></a></li>

如果这不起作用,这就是我要做的。

$userData=$google_oauthV2->userinfo->get();
$this->session->set_userdata('userdata',$userData['id']);
$this->session->set_userdata('username',$userData['given_name']);
$_SESSION['data'] = $userData;

在视图页面上:

<?php if(!empty($_SESSION['data']['userData']['given_name'])){?>
<li><a href="#">HI &nbsp;<?php echo $_SESSION['data']['userData']['given_name'];?> </a></li>
<?php }

你也错过了正确的选择:

$this->session->set_userdata('username',$userData['given_name'];

在您的原始代码中。

答案 2 :(得分:0)

是的,您可以存储以下数据:

$this->session->set_userdata('userdata',$userData);

要从视图访问它,只需将会话数据存储到本地变量中。

$userData = $_SESSION['userdata'];

然后你可以使用它。

  <?php if(!empty($userData['given_name'])){ ?>
    <li><a href="#">HI &nbsp;<?php echo $userData['given_name'];?> </a></li>
 <?php } ?>

注意:      要在codeigniter中使用会话,您必须在控制器中加载会话库。您可以在constroctor或您要设置会话的方法的顶部加载它。(您不必加载它来查看。)

$this->load->library('session');