éditer un formulaire + formulaire embarqué

36 views
Skip to first unread message

Cyril Flieller

unread,
Sep 29, 2011, 10:28:06 AM9/29/11
to symfo...@googlegroups.com
Bonjour,

j'ai déjà parlé de mon cas dans un mail précédent, mais pour rappel, je dispose d'une table Operation(id,....., type_operation) et une table Mission(id,operation_id.....) qui permet d'ajouter des informations à un type d'opération particulier.

J'ai eu quelques problème pour mettre en place un formulaire permettant de saisir les informations sur l'opération et la mission en même temps. C'est maintenant chose faite, mais maintenant, je voudrais permettre l'édition de ces opérations spéciales. Dans l'admin auto généré, j'ai donc un onglet Opération qui me liste toutes les opérations, Mission y compris.

Quand je clique sur une opération normale pour la modifier, tout baigne, mais quand je clique sur une operation particulière (une mission donc), je veux pouvoir faire appel au formulaire qui me permet de modifier les informations de l'opération, et de la mission. Mon formulaire s'appelle MissionForm. J'ai donc cette méthode dans les actions du module Operation :


public function executeEdit(sfWebRequest $request){
    $this->operation = $this->getRoute()->getObject();
    if($this->operation->getOperationtypeId() == Doctrine_Core::getTable('OperationType')->findOneByLabel('Mission')->getId()){
      $mission = Doctrine_Core::getTable('CcMission')->findOneByOperationId($this->operation->getId());
      $this->form = new MissionForm($this->operation);
    }
    else{
      $this->form = new OperationForm($this->operation);
    }
  }

comment faire pour passer au constructeur de MissionForm à la fois les informations sur l'opération (comme dans l'exemple), mais également sur les données liées (la mission) ?

Merci d'avance.

Cyril Flieller

unread,
Sep 30, 2011, 11:20:37 AM9/30/11
to symfo...@googlegroups.com
Bon, ma requête ne motive pas les foules !

J'ai un souci de conception je pense. Comme expliqué, les Missions correspondent à une Opération particulière. La solution qui parrait logique est de faire de l'héritage, mais il me semble que les trois types d'héritage ne sont pas adaptés. Le concrete est le plus proche de ce que je veux faire, mais si j'ai bien compris la classe mère est considéré alors comme une classe abstraite en quelque sorte, ors ce n'est pas vraiment ce que je veux faire, car il existe d'autres type d'opération qui ne necessitent pas d'une classe particulière.

Une idée ?

2011/9/29 Cyril Flieller <cyril.f...@gmail.com>

Mohamed Ayoub Benjelloun

unread,
Sep 30, 2011, 11:46:21 AM9/30/11
to symfo...@googlegroups.com
Récapitulons:

- Tu as 2 tables :
* Operation(id,....., type_operation) 
* Mission(id,operation_id.....)

- et tu veux via ton module adminGen "mission" pouvoir éditer la mission mais également l'opération qui y est liée

Est ce bien cela?

--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail à symfo...@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse symfony-fr+...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr



--
-- 

Mohamed Ayoub BENJELLOUN

Chef de Département web [ EmagCom ]

Consultant Freelance [ PHP5 Technologies - Gestion de Projet]
Cv en-ligne: www.doyoubuzz.com/ayoub-benjelloun

Email: benjell...@gmail.com

Tél: +212 661 96 44 01

Skype: benjellounayoub


Cyril Flieller

unread,
Oct 1, 2011, 4:14:24 AM10/1/11
to symfo...@googlegroups.com

Directement dans le module opération en fait !

>>> *$this->form = new MissionForm($this->operation);*

>>> }
>>> else{
>>> $this->form = new OperationForm($this->operation);
>>> }
>>> }
>>>
>>> comment faire pour passer au constructeur de MissionForm à la fois les
>>> informations sur l'opération (comme dans l'exemple), mais également sur les
>>> données liées (la mission) ?
>>>
>>> Merci d'avance.
>>>
>>
>> --
>> Vous recevez ce message, car vous êtes abonné au groupe Google
>> Groupes Symfony-fr.
>> Pour envoyer un message à ce groupe, adressez un e-mail à
>> symfo...@googlegroups.com.
>> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
>> symfony-fr+...@googlegroups.com.
>> Pour plus d'options, consultez la page de ce groupe :
>> http://groups.google.com/group/symfony-fr?hl=fr
>>
>
>
>
> --
> --
>
> *Mohamed Ayoub BENJELLOUN*
>
> *Chef de Département web [ EmagCom ]*
> *Consultant Freelance [ PHP5 Technologies - Gestion de Projet]*
> *Cv en-ligne: www.doyoubuzz.com/ayoub-benjelloun
> *
>
> *Email: benjell...@gmail.com*
>
> *Tél: +212 661 96 44 01*
>
> *Skype: benjellounayoub*

Cyril Flieller

unread,
Oct 3, 2011, 6:07:15 AM10/3/11
to symfo...@googlegroups.com
Si je tente de passer pas de l'héritage, j'ai cru comprendre que le type d'héritage concrete faisait en sorte de ne jamais remplir la classe mère. Hors moi je voudrais avoir une seule classe fille (Opération de type Mission) mais pouvoir remplir la classe mère également (Opération classique). Mais si je liste toutes les Opération, je veux avoir la liste des Opérations classiques et celle de type Mission.
Reply all
Reply to author
Forward
0 new messages