codeigniter MY_Controller nicht gefunden
ich bin mit dem Codeigniter.2.1.3 für eine website, so dass ich für eine Verlängerung der CI_Controller, so kann ich hinzufügen, eine Methode ausgeführt werden, mit allen Controllern so Tat ich das, was in der user_guide:
erstellen Sie eine Datei namens MY_Controller.php in der Applikation/core-Ordner erstellen in der es MY_Controller Klasse, die Sie erweitert die CI_Controller, die änderung meiner regulären controller zu erweitern, die MY_controller wie diese:
MY_controller.php:
class MY_Controller extends CI_Controller{
protected $page;
# Constructor
function __construct (){
parent::__construct();
#code shared with all controllers
}
public function get_page(){
#code to get_the right page here
}
}
regelmäßigen controller namens Regular.php:
class Regular extends MY_Controller{
public function __construct(){
parent::__construct();
}
public function index(){
$this->get_page();
}
}
aber die folgende Fehlermeldung erscheinen halten:
Fatal error: Class 'MY_Controller' not found in /var/www/immo/CodeIgniter_2.1.3/application/controllers/regular.php auf der Linie 2
- In Ihrem application/config/config.php was hast du für
$config['subclass_prefix']
- Sind Sie sicher, dass MY_Controller.php ist in der Applikation/core-Ordner? Auch wenn Ihr unter linux Dinge können groß-und Kleinschreibung werden 🙂 Stellen Sie sicher, dass der Datei-name ist der gleiche wie der name des Domänencontrollers.
MY_Controller.php
, nichtMY_controller.php
. - fügen Sie ein Leerzeichen nach MY_Controller
- @Esailija $config['subclass_prefix'] = "MY_"
- ja, es ist in der Anwendung/core Ordner
- bitte wenden log-level auf max (set application/config/config.php
$config['log_threshold']
4) dann /application/logs beschreibbar und sehen, was passiert in codeigniter - Versuchen umbenennen der PHP-Datei
MY_controller.php
(Kleinbuchstaben C) und legen Sie Sie in Ihren Ordner Bibliothekenapplication/core
(sorry falscher Pfad)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Würden Sie brauchen, um Ihre
MY_Controller
Klasse oder auto-laden. Ich schlage vor, Sie auto-laden Sie es, indem Sie die folgenden zu Ihremapplication/config/config.php
- Datei.index.php
Datei ist auf dem gleichen Niveau als Ihreapplication
Ordner?Stellen Sie sicher, dass der Dateiname ist perfekt verkleidet. Linux-server ist case-sensitive. Also, wenn der name der Klasse ist My_Controller dann der name der Datei sein sollte My_Controller.php
MY_Controller.php
wird das problem lösen. In meinem Fall, mein controller ist der name CRM_controller.. 🙂$config['subclass_prefix'] = "MY_"
überprüfen Sie, dass in
config.php
und natürlich sollte es im Controller-Namen WieMY_Controller.php
und Benannt "Klasse MY_Controller...."Spät mit dieser Antwort, aber ich habe die "Fatal error: Class 'MY_Controller' nicht gefunden" Fehlermeldung, wenn ich hatte einen controller (php -) Datei mit demselben Namen im web-root anstatt application/controllers Verzeichnis. Weiß nicht, wie Sie dorthin gekommen ist, eigentlich, aber das problem ging Weg, als ich es gelöscht.
in config/config.php