2010-05-13 5 views
0

Je le modèle suivantReliure par déclaration de variable dans la classe modèle ne fonctionne pas, mais l'appel d'une fonction de liaison ne fonctionne

class Comment extends AppModel { 
    var $useTable = "comments"; 
    var $recursive = 1; 

    var $belongsTo = array(
        'User' => array(
         'className' => 'User', 
         'foreignKey' => 'userID' 

        ) 
       ); 

    function bindCommentsToUser() { 

     $this->bindModel(
      array('belongsTo' => array(
        'User' => array(
         'className' => 'User', 
         'foreignKey' => 'userID' 

        ) 
       ) 
      ) 
     ); 
    } 

La variable belongsTo en haut ne fait absolument rien, je ne peux pas l'obtenir à travail. Pour confirmer que la liaison existe, j'ai créé la fonction inférieure pour faire une liaison dynamique qui fonctionne parfaitement. Il semble n'y avoir aucune différence entre les deux. Y a-t-il une erreur que je commets ou y a-t-il un réglage à faire ailleurs?

+0

Je suppose que Cake fait le underscore avec le userID dans un, mais pas l'autre. Si vous le pouvez, je vous recommande de respecter les conventions de cake - utilisez user_id plutôt que userID. Le gâteau fait des choses drôles avec la capitalisation parfois. –

+0

Pouvez-vous inclure le code supplémentaire que vous avez utilisé pour vérifier qu'une variation fonctionne et que l'autre ne fonctionne pas? Comprendre le test appliqué peut aider à déterminer pourquoi le test échoue. –

Répondre

1

Il devrait en être de même dans les deux cas. Vous pouvez créer un ticket au http://cakephp.lighthouseapp.com. Si possible, changez 'userID' en 'user_id' comme recommandé Travis Lleu. Cela fonctionnera à coup sûr.

+0

en passant les colonnes de la base de données à _id travaillé. J'ouvrirai un ticket quand j'aurai une chance – paullb

Questions connexes