簡體   English   中英

如何在Codeigniter中使用單行將數據列表存儲到會話中

[英]How to store the list of data into session with single line in codeigniter

我想將數據列表存儲到單行會話中,然后如何在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 }

閱讀會話上的Codeigniter用戶指南(對此有解釋后)(我們都有),您可以執行以下操作...

這是演示代碼,非常適合測試像這樣的東西。

查看 auth_view.php以獲取更好的名稱

<h1> View </h1>
<?php if(!empty($this->session->given_name)){?>
    <li><a href="#">Hi <?= $this->session->given_name;?></a></li>
<?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;

這是否有助於解釋可能性?

我強烈建議閱讀用戶指南,因為我確實得到了這個答案。

這對我來說很難回答,因為我不知道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'];

在您的原始代碼中。

是的,您可以像這樣存儲數據:

$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中使用會話,您必須將會話庫加載到控制器中。您可以將其加載到構造器中或要設置會話的方法的頂部(不必加載即可查看)。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM