0

我是 CodeIgniter 的新手,在使用 ActiveRecord 语法加载简单数据库表(名为“条目”)的内容时遇到问题——我得到一个空白页。

这是我的控制器:

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。

谢谢。

4

2 回答 2

3

在您的 load_all() 函数中,您在 $query 之后有一个放错位置的 '=>'。它应该是一个'='

    $query = $this->db->get('entries');

然后你可以返回你的 $query 对象。

return $query->result();

另一方面,调用模型时不需要使用大写字母。即使模型名称可以大写,对象函数调用也允许小写。如果您使用资本,您的代码不会中断,您只是不需要。

于 2011-02-14T14:03:07.720 回答
0

我认为您需要告诉您的视图需要提取查询结果:

<ol>
    <? foreach($rows->result() as $row): ?>
        <li><?= $row->title ?></li>
    <? endforeach; ?>
</ol>
于 2011-02-14T12:53:01.423 回答