Partage
  • Partager sur Facebook
  • Partager sur Twitter

silex, twig, Bootstrap : pb taille des input

Sujet résolu
    10 juin 2017 à 20:05:46

    Bonjour à toutes et à tous.
    J'utilise silex pour générer mon formulaire :
    <?php
    
    namespace chezBenoit\Form\Type;
    
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilderInterface;
    use Symfony\Component\Form\Extension\Core\Type\TextareaType;
    use Symfony\Component\Form\Extension\Core\Type\IntegerType;
    use Symfony\Component\Validator\Constraints as Assert;
    
    class OpinionType extends AbstractType
    {
    	public function buildForm(FormBuilderInterface $builder, array $options)
    	{
    		$builder->add('content', TextareaType::class, array(
    					'label'				=> 'Votre texte :',
    					'required' 			=> true,
    					'constraints' 		=> New Assert\NotBlank(),
    					))
    				->add('note', IntegerType::class, array(
    					'label'				=> 'Votre note :',
    					'required' 			=> true,
    					'constraints' 		=> array(
    						new Assert\NotBlank(),
    						new Assert\Range(array(
    							'min' 		=> 0,
    							'max'		=> 20,
    							'minMessage'=> 'Vous devez mettre une note minimum de {{ limit }}.',
    							'maxMessage'=> 'Vous devez mettre une note maximum de {{ limit }}.',
    						)))));
    	}
    
    	public function getName()
    	{
    		return 'opinion';
    	}
    }
    J'utilise le moteur de template twig pour l'affichage :
    {% extends 'layout.html.twig' %}
    {% form_theme opinionForm 'bootstrap_3_horizontal_layout.html.twig' %}
    
    {% block title %}{{ title }}{% endblock %}
    
    {% block content %}
    <h2 class="text-center">Veuillez donner votre opinion :</h2>
    {% for flashMessage in app.session.flashbag.get('success') %}
    <div class="alert alert-success">
        {{ flashMessage }}
    </div>
    {% endfor %}
    
    
    <div class="well">
    {{ form_start(opinionForm) }}
    
    {{ form_row(opinionForm.note) }}
    {{ form_widget (opinionForm.note) }}
    
    {{ form_row (opinionForm.content) }}
    {{ form_widget (opinionForm.content) }}
    
    <div class="form-group">
        <div class="col-sm-offset-5 col-sm-3 col-md-offset-5 col-md-3">
            <input type="submit" class="btn btn-primary" value="Valider" />
        </div>
    </div>
    
    {{ form_end(opinionForm) }}
    </div> 
    {% endblock %}
    Mon problème : les champs de mon formulaire font tous la même taille (largeur).
    Je souhaiterais donner une petite largeur : 50 pixels pour insérer une note (c'est bien suffisant). J'ai grand besoin de votre aide…
    je vous remercie par avance.

    -
    Edité par letengu 10 juin 2017 à 20:12:18

    • Partager sur Facebook
    • Partager sur Twitter
      13 juin 2017 à 8:46:19

      Salut,

      C'est un troll ou..? Il suffit de modifier le css.. Si c'est pas un troll et que tu as un soucis avec le css montre nous le code

      • Partager sur Facebook
      • Partager sur Twitter
        13 juin 2017 à 17:05:18


        Bonjour, et pardon. J'avais bien un problème de présentation mais je me suis rendu dans le cours sur symphony et j'ai trouvé mon bonheur!

        Pour utiliser le CSS, je ne savais pas comment cibler certains input comme ChoiceType…

        J'ai bien besoin de votre aide sur un autre sujet: les dates dans ma classe opinion:

        Comment rédiger à la place des points d'interrogation?

            /**
             * Saves an "opinion" into the database.
             * @param \chezBenoit\Domain\Opinion $opinion The "opinion" to save.
             */
            public function save(Opinion $opinion) {
                $opinionData = array(
                        'opi_content' => $opinion->getContent(),
                        'opi_note' => $opinion->getNote(),
                        'opi_user_id' => $opinion->getUser()->getId(),
                        'opi_date_creation' => $opinion->getDateCreation()???
                    );
                if ($opinion->getId()) {
                    // The opinion has already been saved : update it.
                    $this->getDb()->update('t_opinion', $opinionData, array('opi_id' => $opinion->getId()));
                } else {
                    // The opinion has rever been saved : insert it.
                    $this->getDb()->insert('t_opinion', $opinionData);
                    // Get the id of the newly created opinion and set it on the entity.
                    $id = $this->getDb()->lastInsertId();
                    $opinion->setId($id);
                }
            }



        Ma question est plus exactement : est-ce la bonne façon de procéder ?
        Dans la base de données, est-on obligé de mettre par défaut la valeur pour la date : CURRENT-TIMESTAMP ?
        Commment faire autrement, plus propre ?

        Étant donné que dans un objet, on ne peut pas écrire comme dans une requête : NOW() !


        Merci à vous pour votre réponse.

        -
        Edité par letengu 13 juin 2017 à 17:18:56

        • Partager sur Facebook
        • Partager sur Twitter
          18 juin 2017 à 17:26:52

          Je ne peux pas effacer mon sujet, je vais donc me contenter de le clore.
          Merci.
          • Partager sur Facebook
          • Partager sur Twitter

          silex, twig, Bootstrap : pb taille des input

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown