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 :

Formulaire et liste d'images [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2013
    Messages : 54
    Par défaut Formulaire et liste d'images
    Bonjour,

    J'ai un tableau comme suit avec mes images et les largeur et hauteur pour le html img:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    array
          0 => 
              'lien' => 'http://image.jpg'
              'hauteur' => '400'
              'largeur' => '500'
          1 => 
              'lien' => 'http://image.jpg'
              'hauteur' => '400'
              'largeur' => '600'
          2 => 
              'lien' => 'http://image.jpg'
              'hauteur' => '400'
              'largeur' => '200'
    Si je le passe à mon formulaire il prend aussi les champs hauteur et largeur comme des images (normal me direz vous).

    Ma question est donc la suivante: Existe-t-il une méthode équivalente à la 'property' pour une entité (pour dire au select de ne prendre en compte que la clef 'lien' de mon tableau)?


    Mon champ d'images:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ->add('images', 'choice', array(
                    'multiple'  => false,
                    'expanded' => true,
                    'choices' => $this->images,
                    'required' => false
               ))

    Exemple d'entité avec l'option property:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ->add('qualite', 'entity', array(
                    'multiple'  => false,
                    'expanded' => false,
                    'class' => 'MonProjetMainBundle:Entity',
                    'query_builder' => function(EntityRepository $er) use($type) {
                        return $er->createQueryBuilder('u')
                                   ->where('u.type = :name')->setParameter('name', $type)
                                   ->orderBy('u.ordre', 'ASC');
                    },
                    'property' => 'nom',
                    'empty_value' => 'Veuillez choisir',
                    'required' => false
               ))

  2. #2
    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
    si c'est un tableau tu ne peux pas utiliser le widget entity de ton exemple ^^

    j'ai essayé de trouver une fonction toute faite dans la doc php, mais la seule facon qui me vient en tete c'est de faire une boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $images_choices = array();
    foreach($this->images as $key => $image) {
      $images_choices[$key] = $image['lien']);
    }
     
    ->add('images', 'choice', array(
                    'multiple'  => false,
                    'expanded' => true,
                    'choices' => $images_choices,
                    'required' => false
               ))

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2013
    Messages : 54
    Par défaut
    Salut gototog,

    Oui oui je sais bien pour le entity.

    J'ai oublié de préciser mais si je ne passe qu'un tableau avec les liens je n'aurai plus accès aux largeurs, hauteurs dans la vue twig.


    En gros la méthode 'property' pour les entités permet de passer une entité au formulaire en lui spécifiant que champ de l'entité prendre en compte.
    Mais on a toujours accès à tous les champs de l'entité dans le formulaire (en triffouillant des les variables du formulaire).

    Par exemple faire un select avec le champ "nom" de mon entité.
    Seul les noms apparaitront dans le select, mais dans la vue twig je pourrait toujours aller chercher le champ "prix par exemple pour chaque produit".


    Je me demandais si y'avais un équivalent pour un tableau.

  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
    Les variables que tu utilises dans twig devraient être envoyé via le controlleur, avec le return array(/* nom_variables => values_variables */) de la meme manière que tu passes ton form


    J'ai oublié de préciser mais si je ne passe qu'un tableau avec les liens je n'aurai plus accès aux largeurs, hauteurs dans la vue twig.
    Rien ne t’empêche de donner ton tableau complet au formulaire, le traitement que j'ai écrit plus haut est juste dans ta classe de formulaire

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2013
    Messages : 54
    Par défaut
    Oui oui le traitement je l'ai fait dans mon formulaire.

    Mais si je ne passe à mon champ 'image' de mon formulaire, que le tableau des liens, je n'aurai plus accès à mes infos de hauteur et largeur dans la variable twig {{ form.etcetc }}.


    Après je peux effectivement envoyer le tableau des hauteur et largeur à ma vue twig a partir du controleur, mais ca surcharge pour rien.

    Je me demandais si y'avais pas une manière propre de dire au formulaire de n'utiliser qu'une clef d'un tableau.
    A priori non donc.

  6. #6
    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
    Accéder à des variables par form.vars.etc... je trouve ca crado ^^"

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

Discussions similaires

  1. Test sur formulaire avec liste des erreurs
    Par Nicos77 dans le forum Langage
    Réponses: 37
    Dernier message: 17/11/2005, 10h22
  2. [Formulaire] filtrer liste par choix dans autre liste
    Par vatounet dans le forum Access
    Réponses: 4
    Dernier message: 05/10/2005, 15h57
  3. Comment faire une liste d'image de choix ?
    Par poussinphp dans le forum Composants VCL
    Réponses: 4
    Dernier message: 01/10/2005, 00h34
  4. Formulaire avec liste basée sur une autre table
    Par sabotage dans le forum Langage SQL
    Réponses: 6
    Dernier message: 10/08/2005, 13h43
  5. Réponses: 4
    Dernier message: 14/10/2003, 08h58

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