[英]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 <?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 <?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 <?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 <?php echo $userData['given_name'];?> </a></li>
<?php } ?>
注意:要在codeigniter中使用會話,您必須將會話庫加載到控制器中。您可以將其加載到構造器中或要設置會話的方法的頂部(不必加載即可查看)。
$this->load->library('session');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.