Bonjour à tous,

Voila j'ai voulu utiliser suite au visionnage d'un tuto l'utilisation de la console pour créer la base de mon projet.
Après avoir fait la base de ma structure sql avec mysql workbench, je me suis retrouvé avec les tables de liaisons n,n avec des noms tels que table1_has_table2.
Seulement, il semblerait que la console ne prenne en compte que le premier underscore : table1_has et c'est tout.

Y a-t-il un moyen de contourner cela via la console ou alors j'ai finalement besoin de créer mes tables de liaisons avec uniquement 2 mots maximum ?

Aussi, les tables de liaisons comme celle la, dois-je lui créer un model/controller aussi ou c'est inutile étant donné que ça n'est qu'une table de liaison !

Merci
Clément

6 réponses


Flohw
Réponse acceptée

je n'ai jamais utilisé la console pour créer mes tables, j'utilise workbench egalement et je te conseille, comme GA de renommer tes tables table1_has_table2 en table1_table2 (il faut egalement respecter l'ordre alphabetique, une recette a plusieurs tags et plusiurs ingrédients tu dois avoir recettes, tags et ingrédients et les tables de liaisons ingredients_recettes et recettes_tags) puis, via PMA d'executer le code SQL ensuite tu peux créer tes modeles avec la console, ca va tout seul ;)

Moi je te conseille de renommer les tables sur MySQL Workbench pour les adapter aux conventions de CakePHP

hyrax
Auteur

Donc la convention est une table à 2 mots maximum ?
Et quand on utilise la console on en fait quoi des tables de liaisons ?
Merci !

hyrax
Auteur

D'accord, en effet j'ai renommé les tables de jointures comme vous me l'avez conseillez et cela fonctionne bien.

J'ai une autre question maintenant, après avoir tout installé avec la console donc les models, controllers et vues avec les associations qui vont bien et la parties admin "préfaite" etc.

J'ai par contre des soucis sur cet admin.
J'ai une table users reliée à une table groups par une relation 1,1, j'ai donc l'id du groups en clé étrangère dans users.
Mais quand je vais sur mon admin pour ajouter un user, la ligne $this->User->Group me retourne cette erreur :

Notice (8): Undefined property: User::$Group [APP\controllers\users_controller.php, line 29]

Et ma foi je ne comprend pas pourquoi !

Merci,
Clément

tu n'as pas du mettre belongsTo = 'Group' dans le modele 'Users'

hyrax
Auteur

Ah oui en effet, il y avait bien un belongTo généré par le bake mais il avait inscrit Groups et non Group !

Merci :)