Symfony2: accéder aux champs d'entité dans Twig avec un type de champ d'entité
Voici mon FormType :
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('user', 'entity', array(
'class' => 'UserBundle:User',
'expanded' => true,
'property' => 'name',
));
}
Est-il un moyen d'accès de l'utilisateur champs dans la vue (Rameau) ?
J'aimerais faire quelque chose comme ceci :
{% for u in form.user %}
{{ form_widget(u) }}
{{ form_label(u) }}
{% if u.moneyLeft > 0 %}
<span>{{ u.name }} : {{ u.moneyLeft }} €</span>
{% endif %}
{% endfor %}
... où moneyLeft et nom sont des champs de l'entité utilisatrice.
source d'informationauteur Aurel
Vous devez vous connecter pour publier un commentaire.
Dans Symfony 2.5 - vous pouvez accomplir cela en accédant à des données de chaque choix à l'aide de l'enfant de la valeur de l'indice.
Dans le générateur de formulaire - comme vous vous en doutez:
Dans le template Twig:
À compter d'aujourd'hui, vous pouvez effectuer les opérations suivantes dans la branche master (et à venir 2.1):
u
est la forme de la vue de l'utilisateur, qui contient une liste de joint variables. Ledata
variable contient les données normalisées de la forme, qui est généralement votre objet (sauf si vous avez ajouté un modèle personnalisé transformateur).Dans les précédentes versions de Symfony, vous pouvez le faire:
La
value
variable contient les données d'affichage de la forme, qui est aussi votre objet (sauf si vous avez ajouté un modèle personnalisé ou de la vue du transformateur).Si vous travaillez sur Symfony maître ou >=2.1, je vous recommande d'accès
data
au lieu devalue
.Cela a fonctionné pour moi dans Symfony 3.1 pour un widget radio:
Version 2.6.7
Similaire à ce que Aaron Geiser a suggéré, vous pouvez utiliser personnalisé, la forme de widgets de réaliser ceci:
Mise à jour de Bernhard Schussek réponse pour Symfony 2.8.4 (ou même un peu plus faible de la version):