我是codeigniter的新手,我想开发todo app.now问题是从数据库中获取数据,任何人都会找到并告诉我错误是什么,
get.php
<html>
<head>
<title></title>
</head>
<body>
<?php foreach($data as $row){?>
<tr>
<td><?php echo $row->task; ?></td>
<td><?php echo $row->status; ?></td>
<td><?php echo $row->description; ?></td>
<td><?php echo $row->date; ?></td>
</tr>
<?php }?>
</body>
</html>
Add_task.php(模型)
public function get_user()
{
$this->load->database();
$data=$this->db->get('user');
return $data->result();
}
的welcome.php(控制器)
public function get_task($data)
{
$this->load->model('Add_task');
$data=$this->Add_task->get_user();
$this->load->view('get',$data);
}
我得到这样的错误
遇到PHP错误
严重性:注意
消息:未定义的变量:数据
文件名:views / get.php
行号:8
回溯:
文件:C:\ wamp \ www \ CodeIgniter-3.0.4 \ application \ views \ get.php行:8 功能:_error_handler
文件: C:\瓦帕\ WWW \笨-3.0.4 \应用\控制器\的welcome.php 行:43功能:视图
文件: C:\瓦帕\ WWW \笨-3.0.4 \应用\控制器\的welcome.php 行:33功能:get_task
文件:C:\ wamp \ www \ CodeIgniter-3.0.4 \ index.php行:292功能: require_once
答案 0 :(得分:1)
只需将控制器更改为:
public function get_task($data) {
$this->load->model('Add_task');
$data["data"] =$this->Add_task->get_user();
$this->load->view('get',$data);
}
您需要在加载视图$data["data"]
答案 1 :(得分:0)
Codeigniter通过键读取您的数组,因此您希望传递给视图的每个变量都必须将其作为密钥放在$data
数组中,如下所示:
public function get_task()
{
$this->load->model('Add_task');
$rows=$this->Add_task->get_user();
$data['title'] = "page title";
$data['rows'] = $rows;
$this->load->view('get',$data);
}
并在您的视图中,将$ data替换为$ rows:
<?php foreach($rows as $row){?>
<tr>
<td><?php echo $row->task; ?></td>
<td><?php echo $row->status; ?></td>
<td><?php echo $row->description; ?></td>
<td><?php echo $row->date; ?></td>
</tr>
<?php }?>
答案 2 :(得分:0)
您必须传递包含数据库结果的关联数组。
在“Creating Loops”paragrapher
中见documentation page for viewsWelcome.php(控制器)
public function get_task($data)
{
$this->load->model('Add_task');
$data['users'] = $this->Add_task->get_user();
$this->load->view('get', $data);
}
并更改get.php(视图)中的循环:
<?php foreach($users as $user) { ?>
<tr>
<td><?php echo $user->task; ?></td>
<td><?php echo $user->status; ?></td>
<td><?php echo $user->description; ?></td>
<td><?php echo $user->date; ?></td>
</tr>
<?php } ?>
答案 3 :(得分:0)
只需更改
$this->load->view('get',$data);
到
$this->load->view('get', ['data' => $data]);
一切都很好。
如果要将变量传递到视图中,则需要为其创建对应的数组索引(具有相同的名称但没有$
符号)。例如,如果您希望获得$var1
,$my_variable
,$myCustomVariable
和$data
,请访问&#39;获取&#39;查看,您需要将其传递为:
$this->load->view('get', [
'var1' => 'value of $var1',
'my_variable' => 'value of $my_variable',
'myCustomVariable' => 'value of $myCustomVariable',
'data' => $data
]);