Symfony2 : anpassen von Formular-labels in form von Sammlungen
Ich versuche zum anpassen von Formular-labels, die generiert werden, sind in Unterformulare.
Möchte ich-display Fußball-VORRICHTUNGEN, die in ein bestimmtes Spiel der Woche, wie die folgenden:
- Fixture 1 : Manchester United (0) - (1) - Arsenal - Befestigung 2 : Chelsea (2) - (1) Liverpool - ...
Mein Formular zeigt alle Betriebs-und Verwandte erzielt, aber alle Etiketten enthalten die Spaltennamen aus der Datenbank (score1, score2). Ich möchte die team-Namen statt.
Also, es zeigt derzeit:
- Fixture 1 : score1 (0) - (1) score2 - Befestigung 2 : score1 (2) - (1) score2 - ...
Im controller Erzeuge ich die Woche form (WeekType). $Woche Woche enthält Daten und Armaturen Daten mit $Woche->getFixtures().
Controller/DefaultController.php
$form = $this->createForm(new WeekType(), $week)->createView();
return array(
'form' => $form,
);
Form/WeekType.php
class WeekType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('fixtures', 'collection', array(
'type' => new FixtureType(),
));
}
}
Die Vorrichtung bilden, addiert 2 Felder. Ich will ersetzen Sie Standard-Etiketten in die team-Namen.
Aber ich habe keinen Zugriff auf Vorrichtungs-Daten in dieser form. $options, NULL ist. Ich dachte, $options['data'] enthalten würde, Armaturen Daten... aber ich lag falsch.
Form/FixtureType.php
class FixtureType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('score1', 'text', array('label' => **WHAT TO PUT HERE**));
$builder->add('score2', 'text', array('label' => **WHAT TO PUT HERE**));
}
}
Ich alle Spiele mit diesem code, und es funktioniert Super.
index.html-Code.Zweig
{% for fixture in week.form.fixtures %}
{{ form_widget(fixture) }}
{% endfor %}
Vielleicht könnte ich anpassen meine Etiketten direkt im index.html-Code.Zweig, aber wie bekomme ich die Armaturen Daten?
Macht jemand dieses Problem, auftreten und beheben von it?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe eine Lösung gefunden!
In "index.html-Code.Zweig" Vorlage, die ich iterieren über die Elemente bilden.
Es war ein Fehler. Ich hatte gerade Durchlaufen Armaturen und ähnliche form-widget.
index.html-Code.Zweig
Der trick ist, beim abrufen von form-Elementen direkt aus dem Formular-widgets array :
http://symfony.com/doc/current/book/forms.html#rendering-each-field-by-hand
verwenden
statt