0

私は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、PHP5.3.2。ああ、config/database.phpの$active_record設定はTRUEです。

ありがとう。

4

2 に答える 2

3

In your load_all() function you have a misplaced '=>' after $query. It should be a '='

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

Then you can return your $query object.

return $query->result();

On another note, you don't need to use capital letters when calling your model. Even though the model name may be capitalized, the object function call is allowed to be lowercase. Your code won't break if you use capital, you just don't need to.

于 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 に答える