2013-07-26 10 views
1

Je travaille sur la même application CakePHP depuis plusieurs mois (pas de migration de version) et j'ai récemment rencontré une erreur que je n'arrive pas à trouver. Le message d'erreur indique qu'il provient de la ligne 4 de ce fichier (comment.php)Erreur CakePHP: Classe 'appModel' non trouvé

class Comment extends appModel { 

var $actsAs = array(
    'Containable' 
); 

var $belongsTo = 'Core'; 

public $validate = array(
    'author' => array(
     'rule'=>'notEmpty' 
    ), 
    'body' => array(
     'rule'=>'notEmpty', 
     'message' => 'You cannot leave a blank comment' 
    ) 
); 
} 

Cela vient uniquement lorsque vous tentez de charger le modèle:

Controller::loadModel('Comment'); 

Pour un certain contexte, chaque modèle de base concerne à une forme qui peut être commentée. Les commentaires sont liés au modèle Core via une relation de clé étrangère core_id. Chaque Core ne concerne qu'un seul formulaire et peut avoir n'importe quel nombre de commentaires.

Les seules autres solutions à des problèmes similaires que je peux trouver ont été causées par la migration d'une version de gâteau à l'autre mais j'ai utilisé la même version depuis le début du projet.

+0

Pourriez-vous s'il vous plaît vérifier s'il y a App :: uses ('AppModel', 'Model'); en haut du modèle 'Comment' –

+0

Il n'y a pas de déclaration App :: uses en haut du modèle Comment, mais j'ai résolu le problème causé par une faute de frappe de 'appModel' plutôt que de 'AppModel'. Dois-je aussi mettre l'appel App :: uses pour une raison différente? – Luke16

+0

Si cela fonctionne bien à votre version, alors ça va. Mais à partir de la version 2.1, cela sera nécessaire. Voir le guide de migration pour plus d'informations. http://book.cakephp.org/2.0/fr/appendices/2-1-migration-guide.html –

Répondre

6

Utilisez

App::uses('AppModel', 'Model'); 

au sommet du modèle de commentaire.

et commencer modèle de commentaire comme suit:

class Comment extends AppModel { 

Capital 'A', pas petit 'a'.

+0

Merci, il semble que je n'ai pas remarqué le minuscule "a". C'est ce qui causait le problème. – Luke16

Questions connexes