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 :

formulaires symfony formBuilder template [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2014
    Messages : 124
    Par défaut formulaires symfony formBuilder template
    Je débute sur symfony et me perd dans le rendu des views via le controller car par le passé je créais ma vue et j'appelais mes controllers nécessaire pour ma dite vue hors là le rendu est généré dans le controller et passé en array à la vue.

    Je souhaiterais savoir 2 choses :

    Comment modifier les éléments d'un array form passé à une view twig pour avoir 2 inputs côte à côte (inline) et non type block car des inputs en html sont de type inline.

    via un formBuilder ->add('x',type, peut on spécifier ici le display sur chaque ou non)

    Comment déclarer un formulaire dans une view twig en html pour passer mes names post à mon controller si submited

    ps $builder->add(' ','text', array('label'=>'login') comment placer mes labels en haut ou à droite du champs plutôt qu'à gauche

    Merci pour votre aide

    Cordialement

    Gilles

  2. #2
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Citation Envoyé par cuscodkr Voir le message
    Je débute sur symfony et me perd dans le rendu des views via le controller car par le passé je créais ma vue et j'appelais mes controllers nécessaire pour ma dite vue hors là le rendu est généré dans le controller et passé en array à la vue.
    Nope : le contrôler récupère une requête, appelle des service et renvoie une réponse. À aucun moment il ne gère le rendu de la vue.
    Dans un cas classique, le tableau que le contrôler passe à la vue n'est qu'un tableau de paramètres qui vont être utilisés par ta vue. Mais c'est toujours ta vue qui gère le rendu.

    Citation Envoyé par cuscodkr Voir le message
    Comment modifier les éléments d'un array form passé à une view twig pour avoir 2 inputs côte à côte (inline) et non type block car des inputs en html sont de type inline.
    Cette phrase ne veut pas dire grand chose : un array form je ne sais pas ce que c'est pour toi. Par contre s'il y a bien quelque chose que je peux te dire c'est que ce n'est pas à cet endroit que tu vas décider si deux inputs sont côte à côte : c'est la vue qui gère ça. Je présume que tu ne t'es pas encore renseigné sur la manière de personnaliser le rendu d'un formulaire : donc je t'invite à jeter un œil sur cette page de la doc.

    Citation Envoyé par cuscodkr Voir le message
    via un formBuilder ->add('x',type, peut on spécifier ici le display sur chaque ou non)
    Dans le formBuilder tu peux définir un input comme étant de type 'hidden', auquel cas il sera rendu mais pas affiché, ou alors tu peux donner des attributs à la balise qui sera rendue (class, data-attr etc.) : tu pourras comme ça gérer le rendu des éléments distinctement en css puisque tes éléments de formulaires possèderont des classes.

    Citation Envoyé par cuscodkr Voir le message
    Comment déclarer un formulaire dans une view twig en html pour passer mes names post à mon controller si submited.
    (Traduit de l'anglais : "Has anyone really been far even as decided to use even go want to do look more like") *troll mode off*
    Là encore je ne suis pas sur de comprendre ta phrase : tu veux faire le rendu de ton formulaire dans ta vue tout simplement. Si tel est le cas l'ordre des choses est :
    1. Déclarer une classe FormType dans laquelle tu déclareras chacun des éléments à l'aide du formBuilder
    2. Instancier ce formulaire depuis le controller ou mieux : depuis un service formHandler
    3. Envoyer le rendu du form ($form->createView()) à la template de manière à pouvoir l'afficher
    4. Afficher le formulaire à l'aide de twig en se basant sur le lien de la doc concernant le rendu des formulaires

    En générant un CRUD (cf commande console) depuis une entité et en laissant Symfony te créer classes, formulaires etc, tu auras un bel exemple de ce que tu es supposé faire en matière du formulaire au contrôler. Et tu termine par le lien que je t'ai donné pour le rendu.

    Citation Envoyé par cuscodkr Voir le message
    ps $builder->add(' ','text', array('label'=>'login') comment placer mes labels en haut ou à droite du champs plutôt qu'à gauche.
    Là encore : ce n'est pas au formBuilder de le faire mais à la vue : c.f. lien de la doc.

    Pour récapituler : le formBuilder sert à définir les éléments de ton formulaire, tout au plus quelques attributs mais pas le rendu. Le contrôler récupère une requête, appelle des service et renvoie une réponse (en passant des paramètres à une templates) mais ne gère pas le rendu. La vue, le html, le css, le twig : ça c'est fait pour faire de la cosmétique et aligner tes boutons comme tu veux : c'est LA qu'il faut bosser, pas ailleurs.

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2014
    Messages : 124
    Par défaut crud justement
    j'ai crée un crud hors des qu'il y a des champs ils sont en colonnes donc comment crée un crud avec les champs sur une même ligne et non retour chariot comme un array

    Je souhaiterais que mes champs type inline soient exprimé en inline et les block <h1> par ex en block hors comme le controller renvoie que des array j'ai toutes mes balises en block cela me trouble.

    ex: <html> <body> <input type="text" name="test1"/> <input type='text' name="text2"/></body></html> ca c'est inline

    via un builform c'est du bloc comment mettre du inline en inline et non en bloc

  4. #4
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Ce qu'il ne faut pas faire ici c'est typiquement ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {{ form_widget(form) }}
    car en effet, ça va te faire un rendu par défaut.

    En revanche si tu découpes le rendu du formulaire (form_row, form_widget etc.) tu pourras aligner tes éléments.

    Poste le contenu de ta template, c'est ici que ça se joue : on verra ce que tu peux faire.

  5. #5
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2014
    Messages : 124
    Par défaut
    en faite j'ai trouvé une solution c'est d'appeler chaque élément du formulaire dans une div mais pas très pratique

    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div style='display:inline'>{{ form(form.name) }} </div> <div style='display:inline'>{{ form(form.prenom) }} </div>
    A ma connaissance un imput en html c'est du inline hors la c'est du block

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 150
    Par défaut
    Bonjour,

    Pas mal de notion sont confuses mais on entres autres été expliqué par Nico_F
    A ma connaissance un input en html c'est du inline hors la c'est du block
    Ce qu'il te faut savoir ces que symfony définis lui même l'imbrication des éléments form_label,form_errors,etc... en block dans un fichier twig.
    La bonne pratique est d'utiliser ce qu'on appelle le theming, De plus tu as un fichier form_div_layout.html.twig qui regroupe des block qui à mon avis te satisferont pas, il est courant de les surcharger soit au niveau de la vue du bundle soit au niveau de l'application même. La documentation (voir lien theming) donne un exemple concret.

    Bon courage pour la suite.

  7. #7
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2014
    Messages : 124
    Par défaut
    Merci à tous pour vos précieux conseils car je n'avais pas bien compris la façon d'exprimer les formulaires.

    je me suis aperçu quand faisant {{form(form.name)}} {{form(form.prenom)}} il crée un formulaire pour chaque alors qu'avec un form_widget c'est

    ça change du html et donne envie de continuer

    A bientôt

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

Discussions similaires

  1. [1.x] Formulaires symfony et java !
    Par hisso dans le forum Symfony
    Réponses: 1
    Dernier message: 05/08/2010, 23h35
  2. [1.x] Formulaire Symfony pré -completé
    Par TheDudeDeveloper dans le forum Symfony
    Réponses: 4
    Dernier message: 23/07/2010, 10h04
  3. Réponses: 11
    Dernier message: 06/07/2010, 20h35
  4. [CS4] Inserer un formulaire dans un template Dreamweaver CS4
    Par effde dans le forum Dreamweaver
    Réponses: 10
    Dernier message: 18/11/2009, 21h55
  5. [1.x] Validator Formulaire Symfony
    Par smusta dans le forum Symfony
    Réponses: 2
    Dernier message: 21/04/2009, 20h31

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