如何在视图中加载控制器中的此函数


How do I get this function in a controller to load in view

这是在控制器中

class LandingPage extends CI_Controller {
    public function startEncryptedSession(){
    $this->load->library('session'); 
    $this->load->library('encrypt');    
    $this->load->view('index', array('session', $this->session));
}

}

如何在视图index 中加载此

view代码

<?php echo $head; ?>
<body>
    <?php echo $guts; ?>
</body>
<?php echo $foot; ?>
<?php echo $session->userdata('session_key'); ?> 

我正在使用代码点火器MVC

当我加载视图时,它会给我:

<h4>A PHP Error was encountered</h4>
<p>Severity: Notice</p>
<p>Message:  Undefined variable: session</p>
<p>Filename: views/index.php</p>
<p>Line Number: 8</p>
</div><br />
<b>Fatal error</b>:  Call to a member function userdata() on a non-object 

您需要将要使用的变量传递到视图中。类似这样的东西:

单向:

在您的控制器中:

public function startEncryptedSession(){
    $this->load->library('session'); 
    $this->load->library('encrypt');
    $data = array('session_key' => $this->session->userdata('session_key'));
    $this->load->view('index', $data);
}

在您看来:

<?php echo $session_key; ?> 

另一种方式:

在您的控制器中:

public function startEncryptedSession(){
    $this->load->library('session'); 
    $this->load->library('encrypt');    
    $data = array('session' => $this->session->all_userdata());
    $this->load->view('index', $data);
}

在您看来:

<?php echo $session['session_key']; ?> 

建议一下:CodeIgniter的会话类有点糟糕,因为它将数据存储在cookie上,并且数据大小限制非常低(或者至少我上次检查时是这样)。。。因此,您可能希望使用PHP的默认会话函数或创建自己的类来处理它。但我会让你检查一下,因为这不是你想要的。