无法使用ActiveRecord加载数据库表内容

时间:2011-02-14 12:43:41

标签: codeigniter activerecord codeigniter-2

我是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。

感谢。

2 个答案:

答案 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>