CodeIgniter - Model yüklenen ancak kullanılamaz?

4 Cevap php

Tamam. Yani CI kullanan bir web sitesi üzerinde çalışıyorum. İşte benim denetleyicisi yapısı:

class MY_Controller extends Controller
class User extends MY_Controller
class User_Model

Yani, kullanıcı denetleyicisi Kurucuların içinde User_Model yükleyin. Ben User_Model birşey yazdırın ve sadece iyi çalıştı çalıştı çünkü düzgün yüklü olduğunu bilmek. Ben Kullanıcı denetleyicisi User_Model içinde işlevlerinden birini kullanabilirsiniz Ancak, bana hata vermeye başladı. Bu Aldığım hata:

Tanımsız özellik: Kullanıcı :: $ User_Model

Herkes herhangi bir fikir var?

Bu genişletilmiş denetleyicisi

class MY_Controller extends Controller {
    public function __construct() {
      parent::Controller();
    }
}

Bu denetleyicisidir

class User extends MY_Controller {
    public function __construct() {
      parent::__construct();
      $this->load->model('user_model');
      echo $this->user_model->validate_user('hartantothio');
    }
}

Bu User_model olduğu

class User_model extends Model {
    public function __construct() {
        parent::Model();
    }        
    public function validate_user($user, $pass = '') {
        return '123';
    }
}

4 Cevap

$this->load->model('user_model');

okumalısınız

$this->load->model('User_model');

Modeller isimleri harf duyarlıdır!

Siz) ($ this-> User_Model-> işlev_adı, sözdizimini kullanarak işlevini arıyorsun?

Ben de geçmişte de harf duyarlılığı sorun haline çalıştırmak biliyorum.

Peki, MY_Controller alarak ve sorunu giderir Controller doğrudan kullanıcı denetleyicisi, uzanır tarafından.

Nereye My_Controller dosya koymak? I system/application/libraries mayın koymak ve onunla herhangi bir sorun yok. Ayrıca, ben bunu yazmak için PHP4 yapıcı bir şekilde kullanmak yerine, __constructor:

class MY_Controller extends Controller {

  var $is_ajax_request = '';
  var $is_ajax_form = '';

  function MY_Controller()
  {
    parent::Controller();
    //initialize
    $this->is_ajax_request = ($this->input->server('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest');
    $this->is_ajax_form = ($this->input->post('ajax') == 'ajax');
    log_message('debug', "MY_Controller Class Initialized");
    //do extra stuffs here
    //...
  }

}