IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Valeur par défaut sur un formulaire


Sujet :

Symfony PHP

  1. #1
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut Valeur par défaut sur un formulaire
    Bonjour,

    J'aimerais mettre une valeur par défaut sur un formulaire. Le formulaire est lié à une entité.

    J'ai lu qu'il fallait mettre les valeurs par défaut dans la déclaration de l'entité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
     
    namespace AcmeBundle\Entity;
     
    class MonObjet
    {
        private $id;
        private $monAttribut = "valeur par défaut";
     
        ...
    }
    En effet ça fonctionne, mais ça ne me semble pas très "élégant".
    Et comment faire si j'appelle la même entité dans plusieurs formulaire, avec des valeurs par défaut différentes ?

    Bref, quel est la bonne pratique ?

    Je vous remercie pour votre aide,

    Gilles.

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Par défaut
    bonjour,

    dans le premier cas(une seule valeur par défaut qui ne change pas en fonction du form) j'initialiserai l'attribut(ou son setter) par défaut dans le constructeur ce qui traduit le rôle du constructeur dont celui d'initialiser des données membres(attributs, méthodes).

    -dans le second cas(valeur par défaut en fonction du form) l'initialisation d'une valeur par défaut peut être implémentée dans le contrôleur plus préçisement dans une action(ajouter et/ou éditer) du contrôleur:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public function newAction(Request $request)
    {
     
         $obj = new MonObjet();
        $obj->setAttribut('valeur par défaut'); 
        $form = $this->createForm(new MonObjetType(), $obj);
     
     
    }

  3. #3
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Bonjour,

    Merci pour ta réponse.
    En effet, ça me semble être une meilleur approche.

    Qu'en est-il de la modification ? Est-ce que je suis obligé de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public function updateAction($id)
    {
     
        $obj= $this->getDoctrine()->getRepository( 'AcmeBundle:MonObjet' )->findOneById($id);
        if ( !$obj) throw $this->createNotFoundException( "L'objet ".$id." n'existe pas" );
     
        if (null === $obj->getAttribut) $obj->setAttribut('valeur par défaut'); 
        $form = $this->createForm(new MonObjetType(), $obj);
    Merci,
    Gilles

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    Que ce soit une valeur par défaut qui change ou pas en fonction du form, il vaut mieux utiliser la deuxieme approche proposée par armel18:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public function updateAction($id)
    {
        $obj->setAttribut('valeur par défaut'); 
        $form = $this->createForm(new MonObjetType(), $obj);
        $form ->handleRequest($request);
    D'ailleurs ton entité représente ta couche Modèle, elle n'a pas a savoir quelle valeur par défaut elle doit proposer aux forms qui l'utilisent. De meme, utiliser des valeurs par défaut en dur via 'data' n'est pas bon car ca ne prend pas en compte le changement de la valeur par l'utilisateur

  5. #5
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    ok, merci pour votre aide.

Discussions similaires

  1. valeur par défaut d'un formulaire = champ existant
    Par wes bordeaux dans le forum Access
    Réponses: 1
    Dernier message: 10/02/2007, 18h08
  2. Réponses: 1
    Dernier message: 10/02/2007, 13h44
  3. Valeur par défaut sur ouverture formulaire
    Par Sami Xite dans le forum IHM
    Réponses: 6
    Dernier message: 26/12/2006, 11h08
  4. Réponses: 1
    Dernier message: 25/09/2006, 09h50
  5. [MySQL] Valeur par défaut sur un SELECT
    Par hugo69 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 16/01/2006, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo