我试图通过将3个不同的数组从控制器传递到视图(从数据库中获取数据)来填充视图中的3个表。但是我得到了一个错误
Fatal error: Call to undefined method stdClass::result_array() in C:\xampp\htdocs\SEP\application\views\ManagerViewProjectDatabase.php on line 39
控制器方法为
function ManagerProjects()
{
$this->load->model('ViewProjectsModel');
$new=$this->ViewProjectsModel->ManagerViewProjects('new');
$ongoing=$this->ViewProjectsModel->ManagerViewProjects('inprogress');
$completed=$this->ViewProjectsModel->ManagerViewProjects('completed');
$data=array('new'=>$new, 'inprogress'=> $ongoing,'completed'=>$completed);
$this->username=$this->session->userdata('username');
$this->DashBoardMainView($this->username);
$this->load->view('ManagerViewProjectDatabase',$data);
}
模型类函数为
function ManagerViewProjects($status)
{
$this->db->select('*');
$this->db->from('project');
$this->db->where('status',$status);
$query=$this->db->get();
$q1=$query->row();
return $q1;
}
,视图为
<tbody>
<?php foreach ($new->result_array() as $row): ?>
<tr>
<td><?php echo $row['project_id'];?></td>
<td><?php echo $row['name'];?></td>
<td><?php echo $row['start_date'];?></td>
<td><?php echo $row['deadline'];?></td>
<td><?php echo $row['description'];?></td>
<td><?php echo $row['language'];?></td>
<td><?php echo $row['framework'];?></td>
</tr>
<?php endforeach; ?>
</tbody>
ManagerViewProjectDatabase第39行是foreach的开头。
我是代码点火器的新手,所以我不知道这里发生了什么错误。请指出我正确的方向。提前致谢
答案 0 :(得分:3)
你的模态问题。模型类函数是
所以改变你的模型代码就像这样
function ManagerViewProjects($status)
{
$this->db->select('*');
$this->db->from('project');
$this->db->where('status',$status);
$query=$this->db->get();
return $query;
}
您的代码结果转换为行并返回,因此只返回一个结果。
所以你返回$ query变量以返回所有结果。
此代码对您有用
答案 1 :(得分:0)
在模型页面中使用result_array():
按如下方式更改您的代码:
模型:
$this->db->select('*');
$this->db->from('project');
$this->db->where('status',$status);
$q1=$this->db->get()->result_array();
return $q1;
控制器:
function ManagerProjects()
{
$this->load->model('ViewProjectsModel');
$new=$this->ViewProjectsModel->ManagerViewProjects('new');
$ongoing=$this->ViewProjectsModel->ManagerViewProjects('inprogress');
$completed=$this->ViewProjectsModel->ManagerViewProjects('completed');
$data['result']=array('new'=>$new, 'inprogress'=> $ongoing,'completed'=>$completed);
$this->username=$this->session->userdata('username');
$this->DashBoardMainView($this->username);
$this->load->view('ManagerViewProjectDatabase',$data);
}
查看:
<tbody>
<?php foreach ($result as $key=>$value): ?>
<tr>
<td><?php echo $value['project_id'];?></td>
<td><?php echo $value['name'];?></td>
<td><?php echo $value['start_date'];?></td>
<td><?php echo $value['deadline'];?></td>
<td><?php echo $value['description'];?></td>
<td><?php echo $value['language'];?></td>
<td><?php echo $value['framework'];?></td>
</tr>
<?php endforeach; ?>
</tbody>
答案 2 :(得分:0)
你也可以像这样重写模型函数:
function ManagerViewProjects($status)
{
$this->db->where('status',$status);
return $this->db->get('project');
}
它变得更加紧凑和可读。