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 :

Comment définir des valeurs accessibles depuis twig form controller et entity ?


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 6
    Par défaut Comment définir des valeurs accessibles depuis twig form controller et entity ?
    Bonjour,

    Je souhaiterais déclarer des valeurs dans un fichier de configuration ou autre et pouvoir y accéder depuis mon twig mes form mes controller et mes entity.
    Dans sf1.4 il y avait le app.yml accessible avec sfConfig::get et là je n'arrive pas à trouver une solution dans sf2...

    J'ai vu des pistes concernant les services, mais je ne comprends pas quel est la réelle utilité pour mon cas.

    Par exemple je souhaiterais créer un tableau [key1 => value1, key2 => value2] et pouvoir créer un choice dans mon form avec ce tableau, créer un méthode dans mon entity qui transforme key1 en value1 pour pouvoir l'afficher dans mon template twig.

    J'espère que j'ai été assez clair dans mon explication... N'hésitez pas à me demander plus d'information.

    Merci

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 79
    Par défaut
    Salut,
    Je n'ai jamais utilisé Symfony1.4 mais d'après des collègues ça a beaucoup changé.

    Pour répondre à ta question sur les tables

    Mon contrôleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public function nameAction()
       {
     
    		$em = $this->container->get('doctrine')->getEntityManager();
    		$qb = $em->createQueryBuilder();
    		$query = $qb->getQuery();
    		$entities = $query->getResult();
     
    		return $this->render(MyAppNameBundle:Page:home.html.twig', array(
    				'entities' => $entities
    			));	
       }
    home.html.twig
    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
    16
    17
    <table>
    	<thead>
    <tr>  
    		<th>	nom colonne</th>
    </tr>	
    </thead>
        <tbody>	
        {% for entity in entities %}	
            <tr>
    <td>{{ entity.colonne }}</td>
    </tr>
    {% else %}
     
        <tr>
    	<td>Aucune demande  ! ! !.</td>
        </tr>
    	{% endfor %}
    Pour le choice je le fais dans mon formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ->add('nom',   'choice',	array(
    				'label' => 'nom',
                    'choices'       => array(
    					'homme' => 'Homme',
                        'femme' => 'Femme'),
                        'required' => false,))

    J'espère avoir repondu à ta question

  3. #3
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 6
    Par défaut
    Merci pour ta réponse.

    Jusque là ça v, ce que je voudrais, c'est centraliser mes données de mon choice et au lien de mettre un array('h' => 'homme','f' => 'femme') je voudrais récupérer une variable de configuration qui contient cet array pour pouvoir dans mon entity créer un methode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public function getLitGender()
    {
      $configChoices = ...// récuperer mon array de config
      return $configChoices[$this->getGender()];
    }
    Et pouvoir ensuite le récupérer dans mon template twig.

    Je pense que le mieux serait de définir les valeurs du choices dans l'entity pour pouvoir ensuite les récupérer dans le formType mais là je bloque...

    Des idées ?

  4. #4
    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
    Salut,

    Je croit pas que les fichiers de conf sont le meilleur endroit pour mettre les données de ta liste de choix

    pense a des variables static dans une classe genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    clas Gender
    {
    public static $choices = array('choix 1', 'choix2');
    }
    puis Gender::$choices dans ton action et hop passage vers twig

    si t'a besoin de cette liste dans plusieurs twig dans ton projet (et si tu veut factoriser ton traitement)

    tu peut créer une variable globales via une extension,

    Cordialement Ahmed

  5. #5
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 6
    Par défaut
    Citation Envoyé par phpiste Voir le message
    pense a des variables static dans une classe genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    clas Gender
    {
    public static $choices = array('choix 1', 'choix2');
    }
    puis Gender::$choices dans ton action et hop passage vers twig
    Merci c'est un bonne solution que je vais applique tout de suite.

    N'y a t'il pas une solution avec les services de Symfony2 afin de déclarer des variables et des methodes dans un service et ensuite de les récupérer dans le form/controller/template/entity ?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    le choice est a mettre dans le formulaire pas dans l'entité

    http://symfony.com/doc/current/refer...es/choice.html

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par yakuzabj Voir le message
    Salut,
    Mon contrôleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public function homeAction()
       {
     
    		$em = $this->container->get('doctrine')->getEntityManager();
    		$qb = $em->createQueryBuilder();
    		$query = $qb->getQuery();
    		$entities = $query->getResult();
     
    		return $this->render(MyAppNameBundle:Page:home.html.twig', array(
    				'entities' => $entities
    			));	
       }
    version moderne c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    /**
     * @Route("/home", name="home")
     * @Template()
     */
    public function nameAction()
    {
        $em = $this->getDoctrine()->getEntityManager();
        $entities = $em->getRepository('MyBundle:Entity')->findAll();
     
        return array (
            'entities' => $entities
        );
    }

  8. #8
    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
    Citation Envoyé par alenoir Voir le message
    Déclarer des valeurs dans un fichier de configuration ou autre et pouvoir y accéder depuis mon twig mes form mes controller et mes entity.
    c'etait bien ça son objectif (Pas seulement le formulaire),

    ça revient donc a une centralisation d'une config dans le projet
    et pouvoir l'accéder de n'importe ou

    Amicalement

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/01/2014, 19h50
  2. Réponses: 0
    Dernier message: 08/07/2012, 14h22
  3. Réponses: 1
    Dernier message: 28/06/2012, 16h04
  4. [Form] comment recup des valeurs de radio ?
    Par stolx_10 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 06/10/2006, 10h29
  5. Comment dééfinir les valeurs des abscisses en Time ?
    Par marsupilami34 dans le forum Langage
    Réponses: 1
    Dernier message: 29/09/2005, 15h50

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