【发布时间】:2014-09-16 15:53:17
【问题描述】:
我目前是数据库查询的新手,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 演示 当我按照 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);
}
【问题讨论】:
-
在将其分配给 $data['website'] 之前尝试执行 print_r($results)
-
只需刷新页面,现在为 foreach() 提供的参数无效
-
@acoderslife 因为
$results返回错误; -
@acoderslife 检查您的查询以启用探查器,确保您的所有 where 条件都能正常工作,因为
$results = $this->db->get('website');与您的模型查询不同。 -
完成后,探查器上没有显示任何内容,但错误为 foreach() 提供了无效参数
标签: php codeigniter