Невозможно загрузить содержимое таблицы базы данных с помощью ActiveRecord

Я новичок в 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. Да, и параметр $active_record в config/database.php равен TRUE.

Спасибо.


person cravr    schedule 14.02.2011    source источник


Ответы (2)


В вашей функции load_all() у вас есть неуместное '=>' после $query. Это должно быть '='

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

Затем вы можете вернуть свой объект $query.

return $query->result();

С другой стороны, вам не нужно использовать заглавные буквы при вызове вашей модели. Несмотря на то, что имя модели может быть написано с заглавной буквы, вызов объектной функции может быть строчным. Ваш код не сломается, если вы используете капитал, вам это просто не нужно.

person kevtrout    schedule 14.02.2011

Я думаю, вам нужно сообщить вашему мнению, что результат запроса необходимо извлечь:

<ol>
    <? foreach($rows->result() as $row): ?>
        <li><?= $row->title ?></li>
    <? endforeach; ?>
</ol>
person Repox    schedule 14.02.2011