我是CodeIgniter的新手,使用ActiveRecord语法加载一个简单数据库表(名为'entries')的内容时出错 - 我得到一个空白页。
这是我的控制器:
class Blog extends CI_Controller {
function Blog() {
parent::__construct();
}
function all() {
$this->load->model('Entries');
$data['rows'] = $this->Entries->load_all();
$this->load->view('view_all', $data);
}
}
型号:
class Entries extends CI_Model {
function __construct() {
parent::__construct();
$this->load->database();
}
function load_all() {
$query => $this->db->get('entries');
return $query->result();
}
}
查看:
<ol>
<? foreach($rows as $row): ?>
<li><?= $row->title ?></li>
<? endforeach; ?>
</ol>
注意:如果我将模型中的load_all()函数更改为:,我可以使用它
function load_all() {
$sql = "SELECT * FROM entries";
$query = $this->db->query($sql);
return $query->result_array();
}
我的观点是:
<ol>
<? foreach($rows as $row): ?>
<li><?= $row['title'] ?></li>
<? endforeach; ?>
</ol>
有什么想法为什么ActiveRecord语法不起作用?
仅供参考:CodeIgniter 2.0,MySQL,PHP 5.3.2。哦,config / database.php中的$ active_record设置为TRUE。
感谢。
答案 0 :(得分:3)
在你的load_all()函数中,你错放了'=&gt;'在$ query之后。它应该是'='
$query = $this->db->get('entries');
然后你可以返回$ query对象。
return $query->result();
另外请注意,调用模型时不需要使用大写字母。即使模型名称可以大写,也允许对象函数调用为小写。如果您使用资金,您的代码不会中断,您根本不需要。
答案 1 :(得分:0)
我认为您需要告诉您的观点需要提取查询结果:
<ol>
<? foreach($rows->result() as $row): ?>
<li><?= $row->title ?></li>
<? endforeach; ?>
</ol>