Как добавить заполнитель при вводе в форме Symfony 4?

#html #symfony4

#HTML #symfony4

Вопрос:

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

         ->add('firstname', TextType::class, ['label' => 'Vorname ', 'placeholder' => 'Your name',]) 

Как указано в документации, я также попробовал ниже, здесь я не получаю сообщение об ошибке, просто ничего не отображается.

         ->add('firstname', TextType::class, ['label' => 'Vorname '], ['attr' => ['placeholder' => 'Vorname ']]) 

Комментарии:

1. empty_data ?

2. @BenM не сработал, но спасибо за предложение!

3. Что-то не так с моим ответом?

Ответ №1:

Вам нужно сделать так :

 ->add('firstname', TextType::class, array(
      'label' => 'Vorname ',
      'attr' => array(
          'placeholder' => 'hereYourPlaceHolder'
      )
 ))
 

Как говорится в документации

Комментарии:

1. Несмотря на другой синтаксис, я попробовал то, что они предложили, но все равно ничего! Это то, что я пробовал: ->добавить(‘firstname’, TextType::class, [‘label’ => ‘Vorname’], [‘attr’ => [‘placeholder’ => ‘Vorname’]])

2. В TextType нет опции «заполнитель»… Посмотрите на мой ответ.

3. Или вы можете использовать подобное прямо в ветке: {{form_widget (form.firstname.first, {‘attr’: {‘placeholder’: ‘Vorname’}}) }}

4. Как ни странно, это не работает для меня в Symfony 4.4. Мне пришлось прибегнуть к ответу @kontenurban ниже и пройти через заполнитель в шаблоне Twig. Ни за что на свете я не понимаю, почему я должен это делать, потому что ответ здесь имеет смысл для меня и согласуется с документацией. Странный.

Ответ №2:

Это также работает, отображая элементы по отдельности и добавляя атрибут в twig!

 {{ form_label(form.firstname) }}
{{ form_widget(form.firstname, {'attr': {'placeholder': 'FIRSTNAME'}}) }} 

Ответ №3:

Это работает в Symfony 4

             ->add('fullName', null, [
                'label' => 'Kontaktperson',
                'attr' => [
                    'placeholder' => 'Contact person name'
                ],
            ]) 
 

Подробнее: http://toihid.com/?p=326

Комментарии:

1. Привет, Хандакер. Не могли бы вы ввести «более подробную часть» в своем ответе?

Ответ №4:

Документация Symfony 6 предлагает два способа.

Первый вариант находится внутри yourForm.php :

 ->add('name', TextType::class,
    [
        'label'    => 'Name *',
        'attr' => ['placeholder' => 'Name *'],
        'required' => true
    ])
 

Второй вариант находится внутри twig template :

 {{ form_label(form.name) }}
{{ form_widget(form.name, {'attr': {'placeholder': 'Name*' }}) }}
 

Вы можете найти более подробную информацию в официальной документации Symfony 6 FormType