|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 22 ![]() |
Bonjour,
voici mon problème. J'ai un module Personne contenant les champs : Nom, prénom, noTéléphone (obligatoire),... et un module Client contenant les champs : noClient, noTelephone2 (facultatif), Fax, CB,... Comme Client est "enfant" de Personne, j'ai inclus le formulaire Personne dans celui de client avec : Code :
$this->embedForm('Personne', new PersonnePhysiqueForm($this->getObject()->getPersonnePhysique())); J'ai tenté de déplacer noTelephone avant noTelephone2 à l'aide de : Code :
$this->widgetSchema->moveField($test['no_telephone'], sfWidgetFormSchema::BEFORE, 'no_telephone2'); Auriez-vous une solution pour déplacer les champs d'un formulaire imbriqué entre des champs du formulaire courant ? Merci d'avance... |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Nicolas Développeur Web Inscription : avril 2011 Messages : 96 ![]() |
Si ce n'est que l'affichage qui te dérange alors je te suggère de gérer l'affichage de ton form toi même au lieu de faire un simple Je sais que c'est une solution qui fait soupirer parce que c'est quand même chiant de se taper toute la template à la main avec les render sur tous les champs.
Si ça n'avait pas été un formulaire embarqué, useField aurait fait l'affaire je pense. |
|
|
00
|
|
|
#3 |
|
Membre chevronné
![]() |
Normalement cette méthode setPositions te permet de faire ça, par contre ne c'est plus comment il faut faire, désolé.
|
|
|
00
|
|
|
#4 | |
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 22 ![]() |
Citation:
par gérer l'affichage moi même, tu veux dire que plutôt que d'utiliser la méthode "configure" de form/ClientForm.class.php je le créé moi-même dans client/_form.php ? Est-ce que le fait de faire cela ne posera pas de problème dans mes action comme $form->save() ? Ou devrais-je tout gérer d'une autre manière ? Merci @kenny.kev : setPosition à visiblement la même utilité que le move parce que j'ai la même erreur en retour... merci quand même |
|
|
|
00
|
|
|
#5 |
|
Membre chevronné
![]() |
Normalement tu n'as pas d'erreur c'est que le tableau que tu passes n'est pas bon.
Pour l'affichage c'est dans template ...Success.php que tu affiche les données comme tu veux, voir ce lien : http://www.symfony-project.org/jobee...Doctrine/en/10 Juste avant la partie "The Form Action" |
|
|
00
|
|
|
#6 | |||
|
Membre habitué
![]() Nicolas Développeur Web Inscription : avril 2011 Messages : 96 ![]() |
Citation:
- Si tu es dans une logique d'admin gen', alors tu peux récupérer les templates dans le cache, et les placer dans les template de ton module pour les surcharger. - Si c'est toi qui met en forme ton formulaire, alors tu as plusieurs niveaux de détails. J'ajouterai à la source de kenny celle que je garde en favori pour l'intégration des formulaires http://www.symfony-project.org/forms...-web-Designers qui en plus de te décortiquer la template d'un formulaire, te donne la manière de gérer les labels, les erreurs etc. Mais tu n'est pas obligé d'aller aussi loin si tu n'en as pas besoin : tu personnalises au niveau que tu veux. Dans ton cas tu peux te contenter de l'exemple suivant : Code :
Dans tous les cas ça ne change strictement rien à la manière dont tu save les données, à ceci près qu'il vaut mieux que tu respectes les conventions de nommage pour les id et les class des éléments de ton form si tu décortiques beaucoup. Sinon rien ne change coté action à priori. |
|||
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 22 ![]() |
Bonjour,
C'est avec joie que je peux venir annoncer ici que cela fonctionne à présent... J'ai tenté de mettre en forme moi-même le formulaire dans le _form.php, mais je n'ai pas été satisfait par cette méthode du fait que je n'ai pas réussi à inclure correctement le embedForm de cette manière... Mais à force de bidouille et de test, j'ai remarqué que si je change l'inclusion de mon formulaire en mettant cette ligne: Code :
$this->mergeForm(new PersonnePhysiqueForm($this->getObject()->getPersonnePhysique()));); Code :
$this->embedForm('Personne', new PersonnePhysiqueForm($this->getObject()->getPersonnePhysique())); ).Résultat, mon $this reconnait tout les champs des 2 formulaires et je peux donc déplacer à ma guise avec : Code :
$this->widgetSchema->moveField('no_telephone', sfWidgetFormSchema::BEFORE, 'no_telephone2'); A bientôt |
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 22 ![]() |
En fait je me permet juste de reprendre ce fil, car visiblement l'utilisation de mergeForm pose des problèmes lors de l'enregistrement.
Pour les résoudre, j'ai préféré utiliser la technique citée sur cette page : Lien A une prochaine |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com