我完全是新手,并且已经阅读了有关codeigniter的教程。
我的问题是我一直这样:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: data
Filename: views/welcome_message.php
Line Number: 70
我的控制器“welcome.php”:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index()
{
$data = array();
$data['title'] = "Hello world";
$this->load->view('welcome_message', $data);
}
}
我的观点是
我在视图加载中使用“$ data”,但我一直收到此消息,为什么?
答案 0 :(得分:3)
您放入控制器内$data
的密钥将成为您视图中的变量(extract()
)。所以在你的例子中,:
// controller
$data['title'] = 'hello world';
将在您的视图中显示为:
// view
<?php print $title ?>
您无需在视图中为$data
添加前缀。
答案 1 :(得分:1)
$data
就像“高速公路”一样 - 数据到达视图所需的路线。从技术上讲,它只是一个用于传输设置到视图的变量的数组。
数据在视图中后,您可以通过$data
的密钥进行引用。因此,在您的情况下,在视图中,您将标题引用为$title
。
可以根据需要命名此数组,但约定是使用data
。
所以,在我的控制器中,我可以做到:
$stuff['title'] = "This is my title";
$this->load->view('my_view', $stuff);
在视图中:
echo $title;//echo's out "This is my title"
答案 2 :(得分:0)
您的视图可能正在尝试使用$ data ...未定义,因为它不会作为$ data ['data']存在于发送到视图的数组中。