Ho seguito rigorosamente il how-to article by Phil Sturgeon, per estendere il controller di base. Ma ottengo ancora alcuni errori.Codeigniter esteso esteso MY_Controller
mie 3 classi:
// application/libraries/MY_Controller.php
class MY_Controller extends Controller{
public function __construct(){
parent::__construct();
}
}
// application/libraries/Public_Controller.php
class Public_Controller extends MY_Controller{
public function __construct(){
parent::__construct();
}
}
// application/controllers/user.php
class User extends Public_Controller{
public function __construct(){
parent::__construct();
}
}
Fatal error: Class 'Public_Controller' not found in /srv/www/xxx/application/controllers/user.php on line 2
curioso è che il seguente frammento funziona, se si estende direttamente dal MY_Controller
:
// application/controllers/user.php
class User extends MY_Controller{
public function __construct(){
parent::__construct();
}
}
ho caricato i controllori tramite __autoload()
o manualmente . I controller sono stati caricati con successo.
CI-Version: 1.7.3
Caricamento di MY_Controller.php prima che venga caricato Public_Controller.php? – Alisson
Potresti postare la funzione __autoload in config.php? –
Ci sono molte risposte migliori in questa domanda: http://stackoverflow.com/questions/21663045/creating-a-core-class-that-extends-another-core-class-codeigniter/22125436#22125436 anche se è marcato come duplicato di questo – Chococroc