ASSOCIATION ENTRE DEUX TABLES CATEGORIES ET COURS

Par Iveivex Cisse, il y a 12 ans


bonjour a toutes la communauté au fait je veut lier deux tables : tables cours et tables catégories
la relation est définie ainsi:
une catégorie peut avoir plusieurs cours
et un cour n'appartient qu'a une seul catégorie

10 réponses

Pakito, il y a 12 ans

Category hasMany Cour
Cour belongsTo Category

Il faut que ta table "cours" ait un champ category_id.

yougho, il y a 12 ans

Bonjour a tous j'ai eu le meme soucie avec toi Iveivex Cisse sauf que moi les association marche tres bien et tout mais je n'arrive pas a afficher mes catégorie sur la vue cour !!

Pakito, il y a 12 ans

Pour ça, il faut voir avec le comportement containable de Cake.

yougho, il y a 12 ans

J'ai rajouter le containabel au niveau du Appmodel mais... Enfin j'ai suivie le tuto de graf formation cakephp TP gestion des animeaux !

Pakito, il y a 12 ans

Est-ce que tu les récupères bien dans ton find ? Fait un debug pour voir si tu récupères les catégories quand tu récupères les cours.

Parce que si tu les passes bien à la vue, il n'y a aucune raison que tu ne puisses pas les afficher.

yougho, il y a 12 ans

Oui je récupère bien les catégories
Au niveau du model Article:

class Article extends AppModel{
Public $belongsTo = array('Category', 'Brand')
}

Au niveau de mon controller Article

$categories = $this->Article->Category->find('list');
        $this->set(compact ('categories'));

Pour envoyé les catégories a ma vue article pour l'ajout d'un article.

Pakito, il y a 12 ans

Théoriquement tu devrais pouvoir y accéder depuis ta vue via $categories. Essaie de faire un debug dessus, mais normalement tu auras, pour chaque catégorie, l'ID en key et le name ou le title en value.

De là, tu n'as qu'à passer ça à ton select.

yougho, il y a 12 ans

Au niveau de la vue

$this->HTML->input('category_id');

Sa n'affiche rien
PS: récursive -1 et le containabel

Piverte, il y a 12 ans

Il me semble que ça vient du recursive.
Soit tu récupère Category.id et tu peux laisser recursive à -1. Soit tu mets le recursive à 1 et tu récupères le category_id de la table article.

Avec un recursive -1 tu ne récupères que les données de la table sur laquelle tu fais le find. Il n'y a aucune jointure.

yougho, il y a 12 ans

le problème été au niveau de la variable que j'envoie a ma vue :p
donc le problème a été résolu merci comme meme