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 :

Accès à des attributs d'un objet fils dans Twig [4.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut Accès à des attributs d'un objet fils dans Twig
    Bonjour,

    J'utilise CraueFormFlowBundle pour la création d'un formulaire en plusieurs étapes. J'en ai deux. Donc, dans mon template, j'ai ceci :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    {% extends "base.html.twig" %}
     
    {% form_theme form 'bootstrap_4_layout.html.twig' %}
     
     
    {% block stylesheets %} 
         {{ parent () }} 
         <link rel = "stylesheet" href = "//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.0/css/bootstrap-datepicker.css"> 
     {% endblock %}
     
    {% block body %}
     
        <h1>Création de votre annonce</h1>
        {{ form_start(form) }}
            {{ form_errors(form) }}
     
            {% if flow.getCurrentStepNumber() == 1 %}
     
                ...
                Mise en forme de mes différents champs lors de la première étape
     
            {% endif %}
     
        {% if flow.getCurrentStepNumber() == 2 %}  
     
        <div>
     
            <h4>Prix</h4>
     
            {{ form_rest(form) }}
     
        </div>
     
        {% endif %}
    De cette manière, tout fonctionne correctement.

    Par contre, si je remplace pour mettre en forme les différents champs lors de l'étape 2, de cette manière par exemple,

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
        {% if flow.getCurrentStepNumber() == 2 %}  
     
        <div>
     
            <h4>Prix</h4>
     
            {% set i = 0 %}
     
            {% for price in form.prices %}
     
                {{ form_label(form.price.price, 'Prix', {'label_attr': {'class': 'foo'}}) }}
                {{ form_errors(form.price.price) }}
                {{ form_widget(form.price.price) }}
     
                {{ form_label(form.price.duration, 'Durée', {'label_attr': {'class': 'foo'}}) }}
                {{ form_errors(form.price.duration) }}
                {{ form_widget(form.price.duration, { ‘disabled’:’disabled’ }) }}
     
                {{ form_label(form.price.season, 'Saison', {'label_attr': {'class': 'foo'}}) }}
                {{ form_errors(form.price.season) }}
                {{ form_widget(form.price.season, { ‘disabled’:’disabled’ }) }}
     
     
                <button type="button" id="prices_advert_prices_{{ i }}" class="btn-remove">
                    Supprimer cette durée
                </button>
     
                {% set i = i + 1 %}
     
            {% endfor %}
     
        </div>
     
        {% endif %}
    alors je reçois l'erreur suivante :

    Neither the property "price" nor one of the methods "price()", "getprice()"/"isprice()"/"hasprice()" or "__call()" exist and have public access in class "Symfony\Component\Form\FormView".
    Apparemment, l'erreur provient du fait que Twig ne parvient pas à accéder aux attributs d'objets (price) faisant partie d'une collection (prices) appartenant à l'objet principal (advert) sur lequel repose le formulaire.

    Quelqu'un aurait une idée sur la manière dont il faut procéder pour mettre en forme ces champs?

    Merci d'avance pour votre aide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut
    J'ai trouvé mon erreur : au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {{ form_label(form.price.price, 'Prix', {'label_attr': {'class': 'foo'}}) }}
    , je devais faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {{ form_label(price.price, 'Prix', {'label_attr': {'class': 'foo'}}) }}
    vu que je suis dans ma boucle.

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

Discussions similaires

  1. [AC-2010] FileSystemObject : signification des attributs d'un objet Dossier (Folder)
    Par mihego32 dans le forum VBA Access
    Réponses: 4
    Dernier message: 10/02/2017, 14h14
  2. Bases objet : récupérer des attributs de plusieurs objets
    Par olivier57b dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 17/06/2012, 21h30
  3. Réponses: 5
    Dernier message: 30/03/2010, 10h46
  4. Appliquer des attributs a un objet
    Par malabarbe dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/02/2010, 19h09
  5. Réponses: 1
    Dernier message: 19/11/2006, 00h53

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