Multi Formulaires avec différents Modèles

Par maxime014, il y a 12 ans


Bonjour,

jusqu'à maintenant je pouvais ajouter une "Action" en base de donnée via la vue actions/add.ctp

mais maintenant pour chaque action je voudrais avoir la possibilité d'ajouter un materiel (0 ou plusieurs matériels) en relation avec l'action directement dans la même page.

Je passe actuellement par la vue materiels/add.ctp pour ajouter du matériel et je choisis l'id de l'action correspondant. mais ce n'est pas très pratique...
Plusieurs questions viennent à moi :

Après avoir regardé sur le net je n'est toujours pas assimilé LA bonne pratique pour répondre à ce problème. c'est pourquoi je me tourne vers vous pour tenter de comprendre le bon processus à adopter.

Voici un schéma qui résume mon problème.

Cordialement,

Maxime

6 réponses

B-Art, il y a 12 ans

Salut Maxime,

Si tu as plusieurs table et que tu souhaite récupérer les champs de ta table matériels pour les utiliser dans le controller lié à ta table actions, tu dois établir des relations entre tes tables en utilisant les relations $hasMany, $belongsTo et $hasAndBelongsToMany que tu déclare dans ton Model Action...

Mes compétences s’arrêtant là et n'ayant pas non plus la connaissance de ton code, je ne peux pas te donner quelques chose de tout fait mais je te renvoi vers la formation de Graf' à se sujet.

J'espère que celà t'aideras!

Bon dèv'!

maxime014, il y a 12 ans

Salut et merci de ta réponse,

je comprend bien où tu veux en venir mais j'ai déjà fait mes liaisons mais là je pense que c'est un autre problème, car 2 formulaires sont sur la même page

amethyste, il y a 12 ans

Donc
Une Action concerne 0 ou plusieurs matériels, mais
Un Matériel appartient à UNE SEULE Action ?

Maenhyr, il y a 12 ans

Pour ma part je passe par AngularJS pour réaliser ça. Lors du POST, j'envoie toutes les informations des mes champs input en JSON, côté Controller, je crée un Objet que je merge avec l'existant si il y a un id dans le JSON. Ça marche bien et on est pas dépendant du système de CakePHP dans ces cas là.

maxime014, il y a 12 ans

Oui c'est bien ça amethyste...

prbaron : je ne connais pas du tout AngularJS mais après avoir regardé sur google, je me suis demandé si c'était possible avec Ajax de répondre à mon problème, sans passer par AngularJS

Maenhyr, il y a 12 ans

Oui bien sur, AngularJS n'est qu'une solution parmi d'autres. Tu peux le faire en pur JS ou en jQuery si tu en as envie. Tu peux passer par EmberJS ou BackboneJs, .... .