Bonjour à tous,
Je tente ma chance sur le forum de developpez.net car je n'ai toujours pas de réponse satisfaisante sur les autres forums .
Je n'ai toujours pas trouvé une façon convenable pour gérer simplement des champs additionnels pour une relation HABTM. Je suis reparti d'un modèle plus simple pour faire mes tests, mais je n'arrive à rien. Voici le modèle utilisé :
Recipes ---- Habtm ------ Ingrédients
En gros une recettes possède plusieurs ingrédients et un ingrédient peut être utilisé dans plusieurs recettes. Pour chaque recette, il faut indiquer la quantité d'ingrédients utilisés. Donc cela se traduit pas un champs aditionnel dans la table utilisée pour la relation.
Voici le schéma de ma bdd :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TABLE `ingredients` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(75) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TABLE `recipes` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(45) NOT NULL, `date_created` date NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;La particularité intervient donc dans la table ingredients_recipes. J'ai bien un id unique, les deux clefs étrangères, mais surtout un champs additionnel quantity.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE TABLE `ingredients_recipes` ( `id` mediumint(8) unsigned NOT NULL auto_increment, `recipe_id` int(10) unsigned NOT NULL, `ingredient_id` int(10) unsigned NOT NULL, `quantity` mediumint(8) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `fk_recipes_has_ingredients_recipes` (`recipe_id`), KEY `fk_recipes_has_ingredients_ingredients1` (`ingredient_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=18 ;
Comment dois-je faire pour créer une recette et lui associer une liste d'ingrédients en précisant pour chacun leurs quantités. J'ai essayer avec des scaffold, mais cakephp ne crée pas la vue permettant de saisir les quantités. On ne peux saisir que le nom de la recette et les ingrédients utilisés.
Je ne vois pas du tout quel type de vue il faut utiliser. Quelqu'un pourrait-il me faire un exemple complet ?
Merci beaucoup !
Partager