2011-05-10 28 views
5

私のコードのデバッグに助けが必要です。私は新しいphpと私は現在codeigniterフレームワークを使用しています。イムは、私のページに私のデータベーステーブルの内容を表示しようと致命的なエラー:メンバー関数への呼び出し

/controllers/users.php

$<?php 

class Users extends CI_Controller{ 

    function __Users(){ 

    // load controller parent 
    parent::__Controller(); 

    // load 'Users' model 
    $this->load->model('Users'); 
    } 

    function index(){ 

    $data['users']=$this->Users->getUsersWhere('userid <',5); 
    $data['numusers']=$this->Users->getNumUsers(); 
    $data['title']='Displaying user data'; 
    $data['header']='User List'; 

    // load 'users_view' view 
    $this->load->view('users_view',$data); 
    } 
} 
?> 

/models/users.php

$<?php 

class Users extends CI_Model{ 

function __Users(){ 

// call the Model constructor 

parent::__CI_Model(); 

// load database class and connect to MySQL 

$this->load->database(); 

} 

function getAllUsers(){ 

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

if($query->num_rows()>0){ 

// return result set as an associative array 

return $query->result_array(); 

} 

} 

function getUsersWhere($field,$param){ 

$this->db->where($field,$param); 

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

// return result set as an associative array 

return $query->result_array(); 

} 

// get total number of users 

function getNumUsers(){ 

return $this->db->count_all('admin_user'); 

} 

} 

?> 

イムこれを持ちますエラー

Fatal error: Call to a member function getUsersWhere() on a non-object in C:\xampp\htdocs\printone\application\controllers\users.php on line 16

何が問題だろうか?

答えて

4

コントローラコンストラクタの名前を誤っているため、呼び出されておらず、モデルがロードされていません。

function __construct(){ 

変更

function __Users(){ 

+0

はCodeIgniterのと同様にPHPに新しいイム...お返事ありがとうございましたコンストラクタを呼び出すすべての機能を置き換えている必要がありますか? 関数__construct() と同様に、モデルの__Users()は機能しますか? – nhoyti

+0

はい、すべてのコンストラクタは '__construct()'と呼ばれるべきです。詳細については、[PHPマニュアル](http://php.net/manual/en/language.oop5.decon.php)と[CIユーザガイド](http://codeigniter.com/user_guide)を参照してください。 – BoltClock

関連する問題