根据here我有以下控制器:
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)
,我可以看到很多东西,但除了缓存
编辑:为了澄清,我知道在控制器和视图中调用相同的变量不会“共享”它 - 它超出范围但在我链接的示例中,它似乎意味着$data
变量是在视图范围内创建的。我只是碰巧在控制器中使用相同的名称
答案 0 :(得分:9)
啊,$data
数组的键被转换为变量:例如,尝试var_dump($title);
。
编辑:这是使用extract完成的。
答案 1 :(得分:6)
你应该这样做:
echo $title ;
echo $heading;
echo $message;
答案 2 :(得分:4)
或者你可以像数组一样使用它。 在控制器中:
...
$this->load->view('User_Login', array('data' => $data));
...
在视图中:
<?php print_r($data);?>
将显示数组([title] =&gt;我的标题[标题] =&gt;我的标题[消息] =&gt;我的消息)
答案 3 :(得分:1)
您可以将网址中的变量传递给
function regresion($value) {
$data['value'] = $value;
$this -> load -> view('cms/template', $data);
}
在视图中
<?php print_r($value);?>
答案 4 :(得分:0)
你不能打印变量$ data,因为它是一个关联数组....你可以打印关联数组的每个元素.....考虑下面的例子。
不要这样做:
echo $data;
请执行以下操作:
echo $title;
echo $heading;
echo $message;
答案 5 :(得分:0)
从控制器发送数据到视图时,我们将其传递到数组中,并且该数组的键由代码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;