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 :

[Symfony2] personnaliser form avec twig


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Par défaut [Symfony2] personnaliser form avec twig
    Bonjour ,

    j'ai un formulaire Question et un autre formulaire Choix j'ai imbriquer le formulaire Choix dans Question et j'a fait une imbrication multiple vu qu'une question contienne plusieurs choix.

    mon problème c'est que je ne sais pas comment modifier le template du formulaire

    voici le formulaire Question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public function buildForm(FormBuilderInterface $builder, array $options) {
           $builder->add('question','text')
                   ->add('choices','collection',array('type' => new ChoixAddType(),
                                                      'allow_add' =>true,
                                                      'allow_delete' =>true))
                   ->add('quiz', 'entity', array(
                         'class' => 'ITLessonsQuizBundle:Quiz',
                         'choice_label' => 'nom',))
                   ->add('save','submit');
       }
    et voici le formulaire Choix

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function buildForm(FormBuilderInterface $builder, array $options) {
          $builder->add('reponse','text')
                  ->add('isTrue','choice',array('choices' => array(true=> 'true' , false => 'false'),'expanded'=>true,'multiple'=> false));
      }
    Mon Twig

    Quand je test de modifier le template j'arrive a changer l'input du question on faisons sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p> {{ form_widget(form.question, { 'attr': {'class': 'form-control input-lg', 'placeholder': 'la question'|trans } }) }}</p>
    mais pour l'input choices (collection) j'ai tester de faire sa mais sa ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {{ form_widget(form.choices.reponse) }}

  2. #2
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Par défaut
    j'ai essayer de faire aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    {% for choice in form.choices %}
        {{ form_widget(choice.reponse, { 'attr': {'class': 'form-control input-lg ', 'placeholder': 'La reponse'|trans } }) }}
        {% endfor %}
    vu que le champ est un collection mais sa ne fonctionne pas

  3. #3
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    le theming peut répondre à ton besoin

  4. #4
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Par défaut
    j'ai chercher sur google mais j'ai pas bien compris le theming
    si tu peux me donner un exemple de ce que je devais faire et merci
    j'ai vu sa
    http://symfony.com/blog/new-in-symfony-2-6-bootstrap-form-theme
    mais comment je peux prendre a la main mes formulaire

  5. #5
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    Symfony se base sur ce fichier pour afficher les widgets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ...\vendor\symfony\symfony\src\Symfony\Bridge\Twig\Resources\views\Form\form_div_layout.html.twig
    il faut surcharger tel ou tel block en y apportant ta modif.
    le block choices/radio pour ton cas et l’intégrer dans ta vue.

    la doc pour savoir comment faire :
    http://symfony.com/doc/2.8/cookbook/...omization.html


    ce bloc là par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    {%- block radio_widget -%}
        <input type="radio" {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
    {%- endblock radio_widget -%}
    ou tu y mets tes classes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {%- block radio_widget -%}
        <input type="radio"   class="....................................."   {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
    {%- endblock radio_widget -%}

  6. #6
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Par défaut
    mercii sa m'a vraiment aidee le truc de theaming mais pour le surcharge je sais pas pourquoi il fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    {%- block radio_widget -%}
        <input type="radio"   class="....................................."   {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
    {%- endblock radio_widget -%}
    j'ai ajouer sa dans le fichier twig qui contienne les radio bouton et j'ai ajouter des class pour le test mais rien ne se change

Discussions similaires

  1. [2.x] [Symfony2-Twig] Parcourir un tableau avec twig
    Par ccomarvin dans le forum Symfony
    Réponses: 2
    Dernier message: 30/07/2014, 14h19
  2. [2.x] image gif avec twig Symfony2.1
    Par encours dans le forum Symfony
    Réponses: 2
    Dernier message: 01/12/2012, 23h03
  3. [VB.NET] Form avec comportement msgbox
    Par Berns dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/06/2004, 11h09
  4. Nouvelle form avec bouton dans barre taches
    Par DarkChamallo dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 17/05/2004, 20h44
  5. [] plusieurs instances de form avec leur contexte ?
    Par Seb-31 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 11/04/2003, 13h56

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