2013-02-07 13 views
8

Używam codeigniter 2.1.3Model obciążenia kodowania w bibliotece

Próbuję wczytać model z biblioteki. Początkowo mój kod w konstrukcie w bibliotece wygląda to

$this->CI=& get_instance(); $this->CI->load->database('default') 

Potem w jednym z moich metod bibliotecznych

gdy próbowałem linia poniżej nie robi praca

$this->load->model('model_name') 

ale kiedy próbowałem to działa, każdy może wyjaśnić, co instancja CI odnosi się do 2 dodatkowe parametry podczas ładowania modelu? Z góry dziękuję.

Odpowiedz

2

Można powiedzieć funkcję modelu ładowania do automatycznego łączenia przekazując prawdziwe (Boolean) poprzez trzeci parametr, a ustawienia łączności, jak określono w pliku konfiguracyjnym bazy danych zostaną wykorzystane:

$this->load->model('Model_name', '', TRUE); 

Można więcej na ten temat na końcu strony tego linku poniżej.

http://ellislab.com/codeigniter/user-guide/general/models.html

22

Biblioteka niekoniecznie jest częścią drogi CodeIgniter działa.

Może to być domowa biblioteka do rozwiązywania zadań, które chcesz wykonać w aplikacji CI.

Oznacza to, że jeśli chcesz używać dowolnych pomocników CI, modeli lub innych bibliotek, musisz to zrobić za pomocą instancji CI. Osiąga się to w ten sposób:

public function __construct() 
{ 
    $this->CI =& get_instance(); 
} 

Przypisując wystąpienie do Biblioteki członka nazwie CI, CI wszystkie związane pomocników, modele i biblioteki mogą być ładowane poprzez $this->CI. Próbując to zrobić tylko z $this, odwołujesz się tylko do bieżącej biblioteki - nie instancji CI.

Aby prawidłowo załadować model, w bibliotece wystarcza $this->CI->load->model('model_name');. Drugi parametr pozwala uzyskać dostęp do modelu za pomocą innej nazwy obiektu. Trzeci parametr nie jest wymagany do ładowania modeli, ale pozwala na automatyczne ładowanie sterownika bazy danych.

Jeśli chcesz uzyskać dostęp do modelu przez samego użytkownika:

$respone = $this->CI->model_name->method();