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 :

Checkbox précoché par défaut dans formulaire [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2012
    Messages : 91
    Par défaut Checkbox précoché par défaut dans formulaire
    Bonjour,

    J'ai un formulaire d'ajout de contenu dans le quelle plusieurs Tdthemes peuvent etre rattachés.
    Je voudrais que par défaut le TdTheme dans lequel je me trouve actuellement soit coché par défaut.
    Le tdtheme est récupérer par un slug dans l'url.
    L'url ressemble donc à 'ajouter_contenu/matiere/science-de-bla-bla-bla/td/td-001' est td-001 est le slug de tdtheme.

    Je crée donc mon formulaire dans mon controller:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $form = $this->createForm(new FrontendContentType(array('entity' => $td) ),null,  array(
                'action' => $this->generateUrl('frontend_addcontent_td', array('slug_matiere' => $slugmatiere , 'slug_td' => $slug_td)),
                'method' => 'POST',
                'attr' => array('class' => 'form-horizontal col-lg-12 col-md-12 col-sm-12 col-xs-12')));
    Puis dans FrontendContentType:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $entity = $this->options['entity'];
    $builder
                ->add('tdthemes', 'entity', array(
                    'class' => 'AppBundle:TdTheme',
                    'property' => 'frontname',
                    'expanded' => true,
                    'multiple' => true,
                    'query_builder' => function(TdthemeRepository $er ) use ( $entity ) {
                        return $er->createQueryBuilder('t')
                            ->orderBy('t.frontname', 'ASC')
                            ->where('t.td = ?1')
                            ->setParameter(1, $entity);
                    },
                    'required' => true,
                ));
    Donc cela marche bien mais impossible de pré cocher le td par défaut .
    J'ai essayé avec l'option data mais j'ai un message d'erreur :
    Unable to transform value for property path "[tdthemes]": Expected a Doctrine\Common\Collections\Collection object.

    Une idée ?
    Merci d'avance pour votre aide :-)

  2. #2
    Membre chevronné
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    $form = $this->createForm(new FrontendContentType(array('entity' => $td) ),null, array(
    Verifie que tu passe bien un objet et non pas un ID dans ta variable "$td"

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2012
    Messages : 91
    Par défaut
    Merci phpiste pour votre réponse lorsque je fait un var_dump de td bien un objet de type object(AppBundle\Entity\Tdtheme)

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Par défaut
    Bonjour,

    Vu que tu as une option "multiple" sur ton champ "entity", c'est un tableau d'objet qui est attendu +tôt qu'un objet.

    Il est plus simple de configurer ton objet "FrontEndType" dans le controller puis de le passer à ton Form.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $content=new FrontendContent;
    $content->addTdTheme($td);
    
    $form = $this->createForm(new FrontendContentType ),$content,  array(
                'action' => $this->generateUrl('frontend_addcontent_td', array('slug_matiere' => $slugmatiere , 'slug_td' => $slug_td)),
                'method' => 'POST',
                'attr' => array('class' => 'form-horizontal col-lg-12 col-md-12 col-sm-12 col-xs-12')));

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2012
    Messages : 91
    Par défaut
    Parfait,

    Merci beaucoup :-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Date par défaut dans formulaire
    Par papagei2 dans le forum IHM
    Réponses: 11
    Dernier message: 07/11/2007, 06h21
  2. [Formulaire]valeur par défaut dans un controle
    Par femtoserv dans le forum IHM
    Réponses: 2
    Dernier message: 04/04/2007, 13h57
  3. Réponses: 1
    Dernier message: 10/02/2007, 13h44
  4. Valeur par défaut dans formulaire
    Par Levon dans le forum IHM
    Réponses: 3
    Dernier message: 24/11/2006, 15h32
  5. Réponses: 11
    Dernier message: 13/09/2006, 10h56

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