1

エラーが見つかりません。

codeingniter の restserver を使用しようとしています: https://github.com/philsturgeon/codeigniter-restserver

restserverのインストールで説明したように実装しました。

何らかの理由でデータベースを照会できません: ブラウザでエラーメッセージが表示されます

A PHP Error was encountered
Severity: Notice
Message: Undefined property: Image::$db
Filename: core/Model.php
Line Number: 51

$query を実行するとモデルにエラーが発生するようですが、何らかの理由で db が正しくありませんか?

何か案は?

次のファイルは、呼び出しを行うために実装しました: www.test.com/index.php/image/index

モデル: application/models/image_model.php

<?php if (  ! defined( 'BASEPATH')) exit( 'No direct script access allowed');
class Image_model extends CI_Model {

    function __construct()
    {
        parent::__construct();
    }

    function getAll() {
        //$query = $this->db->get('images');    // Does not work. Active Record missing in libraries?
        $query = $this->db->query( 'SELECT * FROM images' );
        return $query->result(  );
    }
}
?>

コントローラー: application/controllers/image.php

<?php
require(APPPATH . 'libraries/REST_Controller.php');

class Image extends REST_Controller
{
    public function index_get()
    {
        $this->load->model( 'image_model');
        $images = $this->image_model->getAll();
        $this->response($images);
    }

    public function index_post()
    {
        // Create a new book
    }
}
?>

構成セクション データベース: application/config/database.php

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'foo';
$db['default']['password'] = 'bar';
$db['default']['database'] = 'testdrive';
$db['default']['dbdriver'] = 'mysql';
4

1 に答える 1

2

$autoload['libraries']で設定し て、データベース ライブラリを自動ロードしましたapplication/config/autoload.phpか? そうでない場合は、これを行う必要があります:

あなたを開いてapplication/config/autoload.php見つけてください:

$autoload['libraries'] = array();

それを次のように変更します。

$autoload['libraries'] = array('database');

すべてのページ要求でデータベース接続を使用したくない場合は、データベース ライブラリを手動でロードすることもできます。$this->load->database();

于 2013-01-22T17:30:08.307 に答える