2010-03-20 15 views
1

Je suis nouveau à cakephp et j'essaie d'accomplir quelque chose qui devrait être relativement facile. J'ai 2 modèles projets & catégories lier par HABTM relation.Cakephp, Récupérer des données pour les modèles HABTM en utilisant find

Je suis en train d'effectuer la requête suivante -> trouver tous les projets qui appartiennent à une catégorie

$projects = $this->Project->find('all', array('conditions' => array('Category.slug' => $category))); 

Cependant quand je le fais, il génère une erreur SQL:

SQL Error: 1054: Unknown column 'Category.slug' in 'where clause' 

Qu'est-ce que est-ce que je fais mal?

+0

Vous pouvez voir plus sur ma réponse ici
[link] https://stackoverflow.com/questions/12450707/cakephp-how-to-retrieve-habtm-data-with-conditions/25834568#25834568 –

Répondre

1

Pour autant que je sache, vous pouvez obtenir ce que vous voulez comme ceci:

/*in Project Controller file*/ 

$categorys = $this->Project->Category->find('all', array('conditions' => array('Category.slug' => $category))); 

Et vous obtiendrez probablement somethin comme suit si vous mis HABTM relation correctement:

Array 
( 
    [Category] => Array 
    (
     [id] => xxx 
     [name] => hello there 
     ... 
    ) 

    [Project] => Array 
    (
     [0] => Array 
      (
       [id] => 123 
       [name] => Breakfast 
      ) 
     [1] => Array 
      (
       [id] => 124 
       [name] => Dessert 
      ) 
     [2] => Array 
      (
       [id] => 125 
       [name] => Heart Disease 
      ) 
    ) 
) 

Il est ce qui est vous voulez, n'est-ce pas? Voir work with HABTM in cakephp dans le livre de cuisine.

+0

Si vous voir sur mon poste, je veux trouver tous les projets dans une catégorie. Votre code ne traite que des Catégories et ne peut fonctionner (à ma connaissance) que dans le Contrôleur de Catégories. Je cherche à récupérer des données dans le contrôleur de projets et plus en détail tous les projets qui entrent dans une catégorie spécifique. Par exemple, mon URL serait: sitename/projects/view/category-slug. – ion

+0

@ ion, vous pouvez simplement utiliser "$ this-> Project-> Category-> find (...);" pour ce faire, ce n'est pas un problème en fait. Voir ma mise à jour. – Young

+0

J'ai essayé de le faire mais il ne renvoie aucun projet. Il trouve la catégorie mais pas les projets ... Je suis presque sûr d'avoir correctement défini les relations HABTM. Les fichiers mvc ont été générés par cake bake et la base de données est construite comme le suggère le cake: projets, catégories, projects_categories Je ne comprends pas ce qui me manque ici. Je pourrais coller le code des fichiers si vous voulez (ici ou ailleurs). – ion

Questions connexes