Symfony 3 встроенные формы метки не цифры - PullRequest
0 голосов
/ 16 мая 2018

Можно ли изменить эти числа (имена встроенных форм) на некоторые другие метки (они зависят от свойства имени StatisticField) без использования javascript?

enter image description here

StatisticType имеет StatisticFieldTypes:

$builder->add('statisticFields', CollectionType::class, array(
            'entry_type' => StatisticFieldType::class,
            'by_reference' => true,
        ));

StatisticFieldType:

 $builder->add('dateSince', DateTimeType::class, [
                    'widget' => 'single_text',
                    'label' => 'date.since',
                    'required' => false,

                ])
                    ->add('dateTo', DateTimeType::class, [
                        'widget' => 'single_text',
                        'label' => 'date.to',
                        'required' => false,

                    ]);

Спасибо. [EDIT_1]: Мой шаблон:

<h1>Statistic creation</h1>
{{ form_start(form) }}
{{ form_widget(form) }}
<input type="submit" value="Create"/>
{{ form_end(form) }}

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Решением было переопределить метод buildView в StatisticFieldType (встроенный тип формы) и получить данные из формы:

   /**
     * {@inheritDoc}
     */
    public function buildView(FormView $view, FormInterface $form, array $options)
    {
        // For Symfony 2.1 and higher:
        $view->vars['label'] = $form->getData()->getName();
    }
0 голосов
/ 16 мая 2018

Попробуйте

    $builder->add('statisticFields', CollectionType::class, array(
        'entry_type' => StatisticFieldType::class,
        'options' => array('label' => false),
        'by_reference' => true,
    ));

Числа пришли от CollectionType

EDIT:

с именами

    $name = 'IamNotANumber';


    $builder->add('statisticFields', CollectionType::class, array(
        'entry_type' => StatisticFieldType::class,
        'options' => array('label' => $name),
        'by_reference' => true,
    ));
...