问题描述
按照这里,我有以下控制器:
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;