Я пытаюсь настроить метки форм, которые создаются в подчиненных формах.
Я хочу отобразить футбольные матчи, которые содержатся в определенной игровой неделе, например:
- Fixture 1 : Manchester United (0) - (1) Arsenal - Fixture 2 : Chelsea (2) - (1) Liverpool - ...
В моей форме отображаются все приборы и связанные с ними оценки, но все метки содержат имена столбцов базы данных (score1, score2). Вместо этого я хочу поставить названия команд. Итак, в настоящее время он показывает:
- Fixture 1 : score1 (0) - (1) score2 - Fixture 2 : score1 (2) - (1) score2 - ...
В контроллере я генерирую форму недели (WeekType). $week содержит данные за неделю и данные приборов, используя $week->getFixtures().
Контроллер/DefaultController.php
$form = $this->createForm(new WeekType(), $week)->createView();
return array(
'form' => $form,
);
Форма/WeekType.php
class WeekType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('fixtures', 'collection', array(
'type' => new FixtureType(),
));
}
}
Форма Fixture добавляет 2 поля. Я хочу заменить метки по умолчанию на названия команд. Однако я не могу получить доступ к данным прибора в этой форме. $options имеет значение NULL. Я думал, что $options['data'] будет содержать данные приборов... но я ошибался.
Форма/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**));
}
}
Я отображаю все приборы, используя этот код, и он прекрасно работает.
index.html.twig
{% for fixture in week.form.fixtures %}
{{ form_widget(fixture) }}
{% endfor %}
Возможно, я мог бы настроить свои метки непосредственно в index.html.twig, но как я могу получить данные о приборах?
Кто-нибудь сталкивался с этой проблемой и решал ее?