2011-01-30 8 views
23

J'ai téléchargé le nouveau codeigniter 2.0 et ai placé mon contrôleur, mon modèle et mes fichiers dans la nouvelle installation de codeigniter 2.0. mais j'eu cette erreurcodeigniter 2.0 Erreur fatale: Classe 'Controller' introuvable dans

Erreur fatale: contrôleur de 'classe non trouvée dans /Applications/MAMP/htdocs/site/application/controllers/forside.php sur la ligne 3

im Que faire le mal? il fonctionne avec l'ancienne version de CodeIgniter, mais le nouveau ..: S

espoir quelqu'un peut me aider

+1

La réponse acceptée dit de changer 'extends Controller' à' extends CI_Controller' dans les versions> = 2.0. Mais cela casse réellement mon site. – isomorphismes

+0

duplication possible de [Error Class Controller non trouvé dans CodeIgniter] (http://stackoverflow.com/questions/6492544/error-class-controller-not-found-in-codeigniter) – CodeSlayer

Répondre

36

En CodeIgniter 2 contrôleurs héritent de super-classe CI_Controller, plutôt que la classe super Controller utilisé dans CodeIgniter 1.

Le de même pour les modèles en CI2 qui étendent la classe CI_Model plutôt que Model.

+0

mis son pas cool je dois éditer tous mes fichiers :(, ne peux pas obtenir mon projet à travailler en ce moment, a eu beaucoup d'erreurs .. et encryption_key Wtf: p – Sjmon

+0

yup..it travaillé aussi la classe constuctor dans devrait être fonction __construct() {// Appeler le constructeur parent :: __ construct(); } http://codeigniter.com/forums/viewthread/159834/#769301 – Parag

+0

Il est assez boiteux que la plupart des personnes de CI pour la première fois rencontrent probablement cette erreur parce que c'est dans la vidéo d'intro/tutoriel de CI http://codeigniter.com/ tutorials/watch/intro/ – nipponese

14

Je pense que vous n'êtes pas prolongez le contrôleur comme ci-dessous;

<?php 
class MyOwnController extends CI_Controller { 

    function index() 
    { 
     // your code here 
    } 
} 
?> 

Il est écrit sur http://codeigniter.com/user_guide/general/controllers.html, vous devez étendre CI_Controller

+0

oh, donc je dois modifier TOUT mon fichiers: pi va essayer – Sjmon

+0

Triste mais vrai :(Jetez un oeil à http://codeigniter.com/user_guide/installation/upgrade_200.html –

+0

et mon URL ne fonctionne pas savoir http: // localhost: 8888/site/nyheder juste dire "L'URL/le site/nyheder demandé n'a pas été trouvé sur ce serveur." – Sjmon

4

Avec ce préfixe CI_ à votre contrôleur, toutes les classes de base que vous étendez, vous devez placer le dossier applications/core/. Cela est dû au fait que les principales classes CodeIgniter ont été déplacées vers le dossier system/core/.

+1

Cela inclut-il d'étendre la classe de base 'Controller'? Dans les deux premiers didacticiels vidéo, ils disent d'étendre cela avec' Class Blog' dans leur exemple, et ne modifient pas ~/applications/core – isomorphismes

4
class Student extends CI_Controller { 

    function Student() { 
    parent::__construct(); 

    // load helpers 
    $this->load->helper('url'); 
    } 
} 

Y compris la parent::__construct(); plutôt que parent::Controller();

0

Assurez-vous que le nom du contrôleur correspond au préfixe défini dans la configuration:

Par défaut, la configuration a:

$config['subclass_prefix'] = 'MY_'; 

Si votre le contrôleur est core/SomeController.php il ne sera pas trouvé car il ne commence pas par MY_

+0

à droite, mais faites attention. 'MY_', pas 'My_'. –

Questions connexes