Ściśle przestrzegałem how-to article by Phil Sturgeon, aby rozszerzyć kontroler podstawowy. Ale wciąż mam błędy.Kodek rozszerzający rozszerzony MY_Controller
Kim 3 klasy:
// 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
Ciekawym jest to, że po fragment działa, jeżeli przebiega bezpośrednio od MY_Controller
:
// application/controllers/user.php
class User extends MY_Controller{
public function __construct(){
parent::__construct();
}
}
I załadowano sterowników za pośrednictwem __autoload()
lub ręcznie . Kontrolery są ładowane pomyślnie.
CI-Version: 1.7.3
Czy ładujesz MY_Controller.php przed załadowaniem Public_Controller.php? – Alisson
Czy mógłbyś opublikować funkcję __autoload w config.php? –
Istnieje wiele lepszych odpowiedzi na to pytanie: http://stackoverflow.com/questions/21663045/creating-a-core-class- that-extends-another-core-class-codeigniter/22125436#22125436, nawet jeśli jest zaznaczony jako duplikat tego – Chococroc