所以我不知道是我的控制器还是我的CodeIgniter框架中的模型出了什么问题,请帮忙。在我的视图中,我的表没有从数据库中获取数据。
我已经尝试了我在stackoverflow中看到的一切,但我无法使其工作,但这是我的原始代码。
这是我的控制器:
public function index(){
$data['suppliers'] = $this->dashboard_model->readSupplier();
$data['items'] = $this->dashboard_model->readItem();
$data['users'] = $this->dashboard_model->readUser();
$data['units'] = $this->dashboard_model->readUnit();
$data['logs'] = $this->dashboard_model->readLogs();
$this->global['pageTitle'] = 'Dashboard';
$this->loadViews("pages/dashboard", $this->global, $data);
这是我的型号:
class Dashboard_model extends CI_Model{
function readSupplier(){
$this->db->from('suppliers');
$this->db->limit(5);
$this->db->order_by('supplier_id', 'DESC');
$query = $this->db->get();
$result = $query->result();
return $result;
}
function readItem(){
$data = array(
'categories.category_name',
'items.item_id',
'items.category_id',
'items.brand_name',
'items.model',
'items.serial',
'items.unit_price',
'items.status',
'items.location_id',
'suppliers.supplier_id',
'suppliers.supplier_name'
);
$this->db->select($data);
$this->db->from('items');
$this->db->join('categories', 'categories.category_id =
items.category_id', 'left');
$this->db->join('suppliers', 'suppliers.supplier_id =
items.supplier_id', 'left');
$this->db->limit(10);
$this->db->order_by('item_id', 'DESC');
$query = $this->db->get();
$result = $query->result();
return $result;
}
function readUser(){
$this->db->from('users');
$this->db->limit(10);
$this->db->order_by('userId','DESC');
$query = $this->db->get();
$result = $query->result();
return $result;
}
function readUnit(){
$data = array(
'l.location_name',
'su.su_id',
'su.unit',
'su.motherboard',
'su.processor',
'su.ram',
'su.hdd',
'su.video_card',
'su.lan_card',
'su.power_supply',
'su.location_id',
'su.comment',
);
$this->db->select($data);
$this->db->from('system_unit as su');
$this->db->join('locations as l', 'l.location_id=su.location_id', 'left');
$this->db->limit(10);
$this->db->order_by('unit', 'DESC');
$query = $this->db->get();
$result = $query->result();
return $result;
}
function readLogs(){
$this->db->from('activities as a');
$this->db->join('users as u', 'u.userId=a.userId', 'left');
$this->db->limit(10);
$this->db->order_by('userId', 'DESC');
$query = $this->db->get();
$result = $query->result();
return $result;
}
?>
这是我的视图:
<th>User ID</th>
<th>Full Name</th>
<th>Email</th>
</thead>
<tbody>
<?php
if(!empty($users)):
foreach($users as $user): ?>
<tr>
<td><?php echo $user->userId; ?></td>
<td><?php echo $user->firstname." ".$user->lastname; ?></td>
<td><?php echo $user->email; ?></td>
</tr>
<?php endforeach;
endif;
?>
问题出在您的控制器的方法中:loadViews
如何加载视图,您可以通过此链接查看。
我认为模型中的一切都很好。因此,您需要检查方法loadViews
。而且,如果你真的想看到一些结果,你可以替换下一个:
$this->global['pageTitle'] = 'Dashboard';
$this->loadViews("pages/dashboard", $this->global, $data);
带有
$this->load->view('pages/dashboard',$data);
注意:阅读如何使用此方法的第三个参数load->view
,它可以具有值true
或false
,默认情况下为false
我现在真的进去了,它正在工作。我现在遇到的唯一问题是,它给了我一个关于readLogs函数的错误,但如果我删除了readLogs功能,所有表都将显示除Log History之外的数据。顺便说一下,这就是错误。
发生数据库错误错误编号:1052
order子句中的列"userId"不明确
选择*FROMactivities
作为a
LEFT JOINusers
作为u
ONu
。userId
=a
。userId
顺序由userId
DESC限制10
文件名:E:/Xammp2/htdocs/ci-marc/system/database/DB_driver.php
行号:691