我在会话数据中存储了用户名和姓,我想在视图中回显它,以便他们可以看到他们登录的对象。我似乎无法通过数据。我确信这很容易,但我对CI和整个MVC都很陌生。
控制器代码:
public function index() {
if($this->session->userdata('admin_signed_in')){
$this->load->model('dashboard_model');
$data['userdata'] = $this->session->userdata;
$data['main_content'] = 'dashboard/dashboard';
$this->load->view('common/template', $data);
} else {
redirect('signin');
}
}
查看代码:
<?php echo $userdata('first_name') ?> <?php echo $userdata('last_name') ?>
打印R结果:
Array ( [session_id] => 69db0f9ccbfde96d92cc09837067438c [ip_address] => ::1 [user_agent] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20100101 Firefox/16.0 [last_activity] => 1352998508 [user_data] => [0] => Array ( [admin_id] => 10 [first_name] => Richard [last_name] => Coy [admin_role] => 1 ) [admin_signed_in] => 1 )
答案 0 :(得分:6)
控制器代码:
public function index() {
...
$data['first_name'] = $this->session->userdata('first_name');
...
}
查看代码:
<?= $first_name; ?>
或者,如果你想像现在这样传递数据,你可以将视图数据userdata作为数组访问,而不是函数,即:
<?= $userdata['first_name'];?>
答案 1 :(得分:1)
正如我在评论中提到的,当您为数组$data
分配值并通过Codeigniter视图加载器传递它时,数据将在视图部分中可用,其变量名称与数组索引相同。 />
例如,当你这样做时:
$data['name'] = "bla bla";
$this->load->view('some_view', $data);
然后视图中的$name
变量将包含您传递的值。在您的情况下,您将一个数组分配给$data['userdata']
。所以视图中的$userdata
也是一个数组。
所以这样做:
echo $userdata['firstname'];
echo $userdata['lastname'];
在视图部分。