2011-06-28 2 views
1

J'ai un modèle CakePHP qui ressemble à ceci (et fonctionne très bien):CakePHP lors de l'ajout d'une table belongsTo introuvable?

class Paper extends AppModel { 
     var $name = 'Paper'; 
     var $displayField = 'id'; 
} 

Cela donne aucune erreur puisque j'ai une table papers dans ma base de données.

Quand je change le modèle donc (ajouter simplement que la dernière ligne):

class Paper extends AppModel { 
     var $name = 'Paper'; 
     var $displayField = 'id'; 

     var $belongsTo = 'User'; 
} 

Je reçois l'erreur:

Missing Database Table 

Error: Database table ps for model Papers was not found. 

Notice: If you want to customize this error message, create app\views\errors\missing_table.ctp 

Ce qui pourrait aller mal que CakePHP prend tout à coup une première et la dernière nomenclature de caractères sur l'ajout d'une ligne belongsTo?

EDIT

Je peux me tromper avec cela, mais ne devrait pas dire l'erreur model Paper? Il dit Papers à la place. Cela se produit après l'ajout de l'instruction belongsTo. Est-ce là où est l'erreur?

+0

tableau "ps"? votre table n'est pas nommée "papiers"? sinon, vous devez ajouter var $ useTable = "ps"; – alexdd55

+0

Ma table s'appelle 'papers'. Mais il dit toujours 'ps not found' Je veux qu'il utilise des 'papiers'. En fait, il le fait jusqu'à ce que j'ajoute l'instruction belongsTo:/ – Angad

+1

A quoi ressemble le modèle User? Si vous avez '$ hasMany = 'Papers'' ou quelque chose comme ça, vous pourriez avoir cette erreur. – JJJ

Répondre

0

J'ai réussi à résoudre ce problème. En termes simples, les liens de modèle-modèle sont et non comme une rue à sens unique comme l'appelle la documentation de CakePHP.

Par exemple, si le modèle Un modèle modèle belongsTo B, modèle B MUST hasOne ou hasMany A.

Dans mon cas, la syntaxe à la réception était défectueuse.

Questions connexes