2017-03-11 6 views
2

meiner aktuellen Controller & Bibliothek werden folgen aufgelistet ...Zugriff auf Bibliothek in CI HMVC?

>application/ 
- config/ 
- controllers/ 
- ... 
- models/ 
- modules/ 
    - module1/ 
    - controllers/ 
     - Test_cont.php 
    - models/ 
    - views/ 
    - libraries 
     - Test_lib.php 
- third_party/ 
- views/ 
- ...(other files & folders) 

'modules/module1/controllers/Test_cont.php' ist:

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

    function index(){ 
    $this->load->library('Test_lib'); 
    $this->Test_lib->doSomething(); 
    } 
} 

‚modules/module1/Bibliotheken/Test_lib.php 'Datei ist:

class Test_lib 
{ 
    function __construct(){ 
    echo 'library loaded <br>'; 
    } 

    function doSomething(){ 
    echo 'it works!'; 
    } 
} 

, wenn ich an die URL gehen' http://localhost/codeigniter-3.1.3/module1/test_cont " heißt es:

--------------------------------------------------- 
| An Error Was Encountered      | 
--------------------------------------------------- 
| Unable to load the requested class: Test  | 
--------------------------------------------------- 

Ich hoffe, ich kann Sie mein Problem zu verstehen, wie diese zu lösen? ... (Vielen Dank im Voraus)

+0

Try-Bibliothek wie diese '$ this-> last-> Bibliothek laden ('module1/test_lib '); 'und verwenden Sie Kleinbuchstaben-Syntax. – smokehill

+0

@smokehill Sie müssen nur 'Modul/Bibliothek' schreiben, wenn Sie von einem anderen Modul auf die Bibliothek zugreifen wollen – lumos0815

+0

@Amin ist Ihr Problem gelöst? – lumos0815

Antwort

0

Wenn Sie in demselben Modul sind dann Sie Bibliothek wie diese laden können:

function index(){ 
    $this->load->library('Test_lib'); 
    $this->test_lib->doSomething(); 
} 

aber wenn Sie in verschiedenen Modul sind und Sie Bibliothek aus verschiedenen Modul laden dann:

function index(){ 
    $this->load->library('module_name/Test_lib'); 
    $this->test_lib->doSomething(); 
} 
2

Die Bibliotheksnamen nicht zwischen Groß- und Klein werden. Objektinstanzen sind immer Kleinbuchstaben.

siehe creating libraries

function index(){ 
    $this->load->library('Test_lib'); 
    $this->test_lib->doSomething(); 
} 
0

In HMVC Sie die Modulnamen enthalten müssen beim Laden von Bibliothek, Modell usw.

function index(){ 
    // You don't need to use upper case when loading library only class and filename 

    $this->load->library('module-name/test_lib'); 
    $this->test_lib->doSomething(); 

    // Loading model hmvc 

    $this->load->model('module-name/test_model'); 
    $this->test_model->doSomething(); 
} 

-Controller, wenn keine Anwendung/core/MY_Controller.php verwenden MX_Controller

Dateiname Test_cont.php

class Test_cont extends MY_Controller 
{ 

} 

Wenn Sie MY_controller verwenden stellen Sie sicher, dies zu tun in der Anwendung/core/MY_Controller.php

<?php 

class MY_Controller extends MX_Controller { 

} 
0

schließlich ein Fehler innerhalb Skript so dass ich mir ergeben es war, obwohl es jeder war Problem in Bezug auf die Bibliothek geladen, aber meine Bibliothek geladen:

$this->load->library('Test_lib'); 
Verwandte Themen