私は最初のプロジェクトでこの問題にぶち当たっています。私は確かに骨折していますが、最後の数時間それを理解しようとしていて、私は猫がそれを理解しているようだ...Codeigniter Active Records致命的なエラー
私はデータベースライブラリを自動読み込みしているが、毎回私のモデルでメソッドを使用しようとするとこのエラーが出る:
「致命的なエラー:ライン13上のuser_model.php \アプリケーション\モデルにおいて非オブジェクト上()メンバ関数の呼び出し」、これは私のユーザ制御方法であって
を私のログインフォームビューからフォームアクションによって呼び出さ:
function login() {
$this->load->model('user_model');
$query = $this->user_model->validate();
if ($query)
{
$data = array(
'username' => $this->input->post('username'),
'is_logged_in' => true
);
$this->session->set_userdata($data);
redirect('members');
}
else
{
$this->load->view('user');
}
} // end login function
は、これが私のモデルである:
<?php
class User_model extends CI_Model {
function __construct() {
parent::__construct();
}
// -------------------------------------------------------------------------------
// validate(): query db for user/pass and return true or false
function validate() {
$this->db->where('username', $this->input->post('username'));
$this->db->where('password', sha1($this->input->post('password')));
$query = $this->db->get('users');
if ($query->num_rows() > 0)
{
return true;
}
} // end validate function
// -------------------------------------------------------------------------------
function check()
{
$dbo = $this->load->database('default',TRUE);
$query = $this->$dbo->get('users');
echo $query->num_rows();
}
} // end user_model class
私は問題をデバッグしようとしていたとき、私は、コントローラにデシベルメソッドを追加し、彼らが働いていました彼らが私のモデルでそれらを使用するとき、私は言及した致命的なエラーをどんな理由でも働かせたくありません。あなたが私の道を捨てることができる助けを感謝してください。
ありがとうございます!
(使用してCodeIgniterの2.1)
EDIT:
ちょうど、私は私のコントローラに(私のモデルから)validateメソッドを追加すると、私はエラーを取得していない、より少し物事をクリアすると、すべてが正常に動作します...しかし、モデルでそれを残して、コントローラからそれを呼び出すときに、私はあなたが$クエリ=一部を逃した
あなたは絶対にデータベースライブラリがロードされていることを確かめていますか?ライブラリを自動ロードするには、 'application/config/autoload.php'を編集して、適切な配列にオートロードする必要があるものを追加する必要があります。 – afarazit
ポジティブ...それは何だったのか分かりませんが、私はいくつかの検索を行い、他の人々が同じ問題を抱えていることを発見しました。 CodeIgniterを同じコードとファイルで新しくインストールし、問題は消えました... Strange ... CodeIgniterセッションクラスにも問題があったので、セッションを取得して私のために働かせなければなりませんでした。言うまでもなく、私の髪を引っ張って数日後に私はついに進行しています:) – newguy13