我目前不熟悉数据库查询,而其他的codeigniter似乎无法让我的模型正常运行。
我已经尝试将db直接加载到控制器,并且工作正常。但是,如果我打电话给我的模特不想工作就不会出现。
这是我想要实现的目标。
控制器
public function website_test_model() {
$this->load->model('admin/website/model_website');
$results = $this->model_website->getWebsites();
$data['websites'] = array();
foreach ($results as $result) {
$data['websites'] = array(
'website_id' => $result['website_id'],
'name' => $result['name'],
'url' => $result['url']
);
}
$this->load->view('website/websites', $data);
}
查看
<!-- Not Working From Controller Function Model Test -->
<?php if ($websites) { ?>
<?php foreach ($websites as $website) { ?>
<?php echo $website['website_id'];?>
<br>
<?php echo $website['name'];?>
<br>
<?php echo $website['url'];?>
<?php } ?>
<?php } ?>
模型
<?php
class Model_website extends CI_Model {
function getWebsites() {
$this->db->select('*');
$this->db->from('website');
$this->db->where('website_id');
$this->db->where('name');
$this->db->where('url');
$query = $this->db->get();
if($query->num_rows() > 0) {
return $query->row();
} else {
return false;
}
}
}
Codeigniter Demo当我按照codeigniter用户指南中的说法尝试这种方式时,它可以工作。只是上面的代码是我想要的方式虽然试图让模型工作没有运气
public function website() {
$results = $this->db->get('website'); // Works Direct From Controller OK.
foreach ($results->result() as $row) {
$data = array(
'website_id' => $row->website_id,
'name' => $row->name,
'url' => $row->url
);
}
$this->load->view('website/website', $data);
}
答案 0 :(得分:1)
你在模型文件中做错了
<?php
class Model_website extends CI_Model {
function getWebsites() {
$query =$this->db->get('website');
if($query->num_rows() > 0) {
return $query->result();
}
}
}
1)在您的模型中,您使用的是条件$this->db->where('website_id');
,但是您没有按照您的条件传递任何内容$this->db->where('website_id',$yourwebsite_id);
答案 1 :(得分:0)
您必须在模型中检查数据库查询是否返回结果。
在模型中使用此查询
$this->db->last_query();
答案 2 :(得分:0)
在模型中使用此查询
$query = $this->db->get('website');
return $query;
传递此查询以查看然后使用此foreach
foreach ($query->result() as $row)
{
<?php echo $row->website_id; ?>
<br>
<?php echo $row->name;?>
<br>
<?php echo $row->url;?>
}