Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2010, 10h04   #1
Membre régulier
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 75
Points : 75
Envoyer un message via Skype™ à mantex
Par défaut surcharge admin générator champs cle etrangere

Bonjour,

J'ai surchargé un formulaire de l' admin generator d' un des modules, mais je souhaiterai fixé un champs du formulaire qui actuellement propose une liste à l' utilisateur.

Par exemple en cachant ce champs avec un input hidden et un setMonchamps('valeurdynamique') dans le contrôleur.

Le cas présent est différent car je surcharge le formulaire new de l'admin generator.

En plus l' idée est que cette modif ne soit pas valide dans mon module admin qui lui a besoin de disposer d' une liste pour ce champs. et donc seulement dans la partie surchargée.


J'ai cherché du coté du generator.yml mais rien de bien convaincant.
mantex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 13h25   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Il m'est avis que ...

... je ne comprend rien à ce que tu souhaites.

Je te propose donc de reformuler ta question.

Un exemple de ce qu'un utilisateur doit faire pourrait aider.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 13h38   #3
Membre régulier
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 75
Points : 75
Envoyer un message via Skype™ à mantex
OK .. je m' en doutais c'est tout simple mais pas facile à expliquer clairement en une fois..

Je reprends..

J' ai un formulaire admin que je surcharge donc il me fait le lien automatiquement avec les autres tables notamment sur un champs 'customer_id'.

Cela est intéressant dans un usage admin, mais quand c ' un client X qui l' utilise. Celui ci ne doit pas voir les autres éléments de la liste du champs customer_id et le champs doit être rempli avec l' id du user qui est connecté par exemple.

Est ce plus clair ?
mantex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 09h28   #4
Membre régulier
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 75
Points : 75
Envoyer un message via Skype™ à mantex
Bonjour à tous,

J' ai finalement résolu mon problème en héritant la classe Contributor généré par le admin générator, ce qui m' a permis de crée un formulaire de base dans cette classe et donc de gérer comme je le souhaite ma clé étrangère ainsi que le template.

Dernier point, existe t-il un moyen pour personnaliser les champs du formulaire sans les modifier directement dans le template ?
mantex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 17h30   #5
Membre confirmé
 
Inscription : février 2009
Messages : 317
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 317
Points : 209
Points : 209
Qu'appelle tu personaliser ?
Pour changer les label à coté des champs de ton formulaire, ça se passe dans le generator.yml
Sinon pour modifier les champs eux même va voir le form concerné.
insane1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 18h19   #6
Membre régulier
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 75
Points : 75
Envoyer un message via Skype™ à mantex
Par exemple pour ne pas avoir une liste déroulante sur une clé étrangère mais juste la valeur de l' utilisateur qui est connecté.

Les admin générator c' est bien mais dés le module doit être partiellement utilisé par des utilisateurs simple, Ca devient vite embettant.

j' ai donc hérité ma classe pour ne pas avoir à les contraintes de l' admin générator et par soucll d' indépendance.

Car la classe est utilisée aussi bien par des admin que par les clients qui ont juste le droit de modifier ce qui les concernent.

Ensuite pour personnaliser les labels de mes champs j' ai utilisé la fonction setLabel() dans ma nouvelle classe NouelleClasseForm.

Merci quand même.
mantex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 21h03   #7
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Citation:
Envoyé par mantex Voir le message
Est ce plus clair ?
Je vais commander du paracétamol.

Je ne sais pas comment tu as réellement résolu, attention si tu fais transiter l'information dans un champ caché du formulaire, il reste modifiable facilement par un utilisateur averti et mal intentionné

@insane1 le générator.yml ne permettra de modifier que si tu as générer un module d'administration, ce qui ne semble pas le cas ici.

Je pense qu'il vaut mieux faire deux modules, un pour l'administration, un pour les utilisateurs, bien ; plutôt que de tenter de n'en faire qu'un, mal.

Le mieux est de passer par le parameterHolder de l'objet sfUser pour transmettre une donnée masquée et qui ne doit pas être modifiée. Surtout si c'est l'id de l'utilisateur, qui devrait déjà y figurer.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 21h25   #8
Membre régulier
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 75
Points : 75
Envoyer un message via Skype™ à mantex
Citation:
Envoyé par Michel Rotta Voir le message
Je vais commander du paracétamol.

@insane1 le générator.yml ne permettra de modifier que si tu as générer un module d'administration, ce qui ne semble pas le cas ici.
Tout à fait..

Je pense qu'il vaut mieux faire deux modules, un pour l'administration, un pour les utilisateurs, bien ; plutôt que de tenter de n'en faire qu'un, mal.

et le principe de dry ? ;-) surtout pour 1 seul formulaire..
mantex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 12h18   #9
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Les deux formulaires ont des destinations différentes.

Il reste possible (souhaitable) de partir d'un même form, qui, par l'héritage, pourra être facilement adapté avec le code spécifique à chaque module. De même, le code de traitement des objets du modèle sera partagé à partir de ces mêmes objets du modèle.

En fait, seul le code réellement très spécifique à chaque module sera propre à chaque module et le DRY se portera bien
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h19.


 
 
 
 
Partenaires

Hébergement Web