Поле BirthdayType Symfony: как добавить метки в сгенерированный текстовый виджет? - PullRequest
0 голосов
/ 09 октября 2018

Моя форма Symfony использует поле BirthdayType .Его поведение по умолчанию состоит в добавлении трех отдельных выпадающих списков для месяца, дня и года.Я добавил опцию текстового виджета, как описано здесь , чтобы иметь три отдельных поля ввода текста.Мой вопрос: как я могу также генерировать метки для каждого из этих полей ввода?

Сгенерированный HTML-код:

   <div id="user_birthDate">
       <input type="text" id="user_birthDate_month" name="user[birthDate][month]" required="required">
       <input type="text" id="user_birthDate_day" name="user[birthDate][day]" required="required">
       <input type="text" id="user_birthDate_year" name="user[birthDate][year]" required="required">
   </div>

FormBuilder (выдержка):

 public function buildForm(FormBuilderInterface $builder, array $options): void
 {
     $builder
        ->add('birthDate', BirthdayType::class, ['widget' => 'text'])
        ->add('next', SubmitType::class);
  }

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Вы должны сделать собственную веточку:

{#birthdate.html.twig !#}

{% block birthday_widget %}
    {% spaceless %}
     <label> month </label>
     <input type="text" id="user_birthDate_month" name="user[birthDate][month]" required="required">

     <label> day </label>
     <input type="text" id="user_birthDate_day" name="user[birthDate][day]" required="required">

     <label> year </label>
     <input type="text" id="user_birthDate_year" name="user[birthDate][year]" required="required">

    {% endspaceless %}
{% endblock %}

и добавить эту строку в config.yml:

# app/config/config.yml
twig:
    form_themes:
        - 'form/birdhdate.html.twig'
0 голосов
/ 09 октября 2018

Вы можете добавить метки в опциях, как вы сделали с «виджетом»

public function buildForm(FormBuilderInterface $builder, array $options): void
 {
 $builder
    ->add('birthDate', BirthdayType::class, [
         'widget' => 'text',
         'label' => 'Birthday label that you want to show',
        ])
    ->add('next', SubmitType::class);
 }

Также см. https://symfony.com/doc/current/forms.html#field-type-options

...