Невозможно загрузить содержимое таблицы базы данных с ActiveRecord - PullRequest
0 голосов
/ 14 февраля 2011

Я новичок в 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.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 14 февраля 2011

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

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

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

return $query->result();

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

0 голосов
/ 14 февраля 2011

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

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