質問

CodeIgniterベースのWebサイトのモデルをロードしていますが、エラーが発生し続けます:

"Fatal error: Call to a member function on a non-object in /nfs/c02/h05/mnt/30796/domains/planetchustar.com/html/arguit/system/application/controllers/home.php on line 8"

参照するコードの部分は次のとおりです。

function index()
{
        $this->load->model('posts');    //error here
        $result = $this->Posts->get_all_topics();
}

モデルは「投稿」と呼ばれます。ファイル名は" posts.php"です。

編集: 私は自分の問題の1つを発見しました。それは、その機能を使用しようとする前にデータベースにロードしていなかったため、それを修正しましたが、今は言っています:

A Database Error Occurred
Unable to connect to your database server using the provided settings.

しかし、database.phpファイルに保存した接続情報が正確であることは確かです(phpmyadinのWebサイトから入手)。

役に立ちましたか?

解決

この場合、codeigniterユーザーガイドを理解するのは少し困難です。ファイル名は小文字のみで、「load」と呼び出し($ this-> Posts-> etc())はモデルファイルの宣言と一致する必要があります。

これは間違いなく大文字と小文字の区別の問題です。

他のヒント

「投稿」はサブディレクトリにありますか?その場合、ロード中にサブディレクトリを参照する必要があります。

そうでない場合は、こちらが役立つ投稿です。

>

@arthurに同意します。コントローラーを別のコントローラー内に埋め込まないようにしてください。

大文字と小文字の区別エラーです...

次のように使用します:

function index()
{
        $this->load->model('posts');    //error here
        $result = $this->posts->get_all_topics();//<-- Notice "posts" and not "Posts"
}

これは、$ this-&gt; loadがオブジェクト参照ではないことを意味します(ほとんどの場合null)。これを知ったら簡単に判断できるのはなぜですか。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top