質問
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)。これを知ったら簡単に判断できるのはなぜですか。
所属していません StackOverflow