Codeigniter将数据从控制器传递到视图

问题描述

按照这里,我有以下控制器:
class User extends CI_Controller {
    public function Login()
    {
        //$data->RedirectUrl = $this->input->get_post(\'ReturnTo\');
        $data = array(
               \'title\' => \'My Title\',\'heading\' => \'My heading\',\'message\' => \'My Message\'
          );
        $this->load->view(\'User_Login\',$data);
    }

    //More...
}
然后在我的
User_Login.PHP
查看文件中执行以下操作:
<?PHP print_r($data);?>
结果是:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: data
Filename: views/User_Login.PHP
Line Number: 1
我是否需要加载任何特定的模块/助手来填充$ data变量?如果我
print_r($this)
,我可以看到很多东西,但是除了高速缓存外,我的数据都没有 编辑:为澄清起见,我知道在控制器和视图中以相同的方式调用该变量不会\“共享\”它-不在范围内,但在我链接的示例中,这似乎暗示一个“ 5”变量在视图范围内创建。我只是碰巧在控制器中使用相同的名称     

解决方法

        嗯,“ 5”数组的键被转换为变量:例如,尝试“ 7”。 编辑:这是使用提取完成的。     ,        你应该这样做:
echo $title ;
echo $heading;
echo $message;
    ,        或者您可以像数组一样使用它。 在控制器中:
...
$this->load->view(\'User_Login\',array(\'data\' => $data));
...
在视图中:
<?php print_r($data);?>
将显示数组([title] =>“我的标题[heading] =>我的标题[message] =>“我的消息”)     ,        您可以将url中的变量传递给
function regresion($value) {

    $data[\'value\'] = $value;
    $this -> load -> view(\'cms/template\',$data);
}
在视图中
<?php print_r($value);?>
    ,        您无法打印$ data变量,因为它是一个关联数组....您可以打印该关联数组的每个元素.....请考虑以下示例。 请不要执行以下操作:
echo $data;
进行如下操作:
echo $title;   
echo $heading;    
echo $message;   
    ,        您也可以使用这种方式
$data[\'data]=array(\'title\'=>\'value\');
    $this->load->view(\'view.php\',$data);
,        从控制器向视图发送数据时,我们将其传递到数组中,并且该数组的键由代码codeigniter制成变量,并可以在视图文件中访问。 在下面的代码中,所有键都将成为User_Login.php中的变量
class User extends CI_Controller {
    public function Login()
    {
        $data = array(
               \'title\' => \'My Title\',//In your view it will be $title
               \'heading\' => \'My Heading\',//$heading
               \'message\' => \'My Message\'  //$message
          );
        $this->load->view(\'User_Login\',$data);
    }

}
在您的User_Login.php视图中,您可以像这样访问它们:
echo $title;
echo $heading;
echo $message;