Как добавить стиль к виду формы в symfony? - PullRequest
0 голосов
/ 19 июня 2020

У меня есть эта форма страницы регистрации, которая выглядит примерно так:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('email')
        ->add('username')
        ->add('agreeTerms', CheckboxType::class, [
            'mapped' => false,
            'constraints' => [
                new IsTrue([
                    'message' => 'You should agree to our terms.',
                ]),
            ],
        ])
        ->add('plainPassword', PasswordType::class, [
            // instead of being set onto the object directly,
            // this is read and encoded in the controller
            'mapped' => false,
            'constraints' => [
                new NotBlank([
                    'message' => 'Please enter a password',
                ]),
                new Length([
                    'min' => 6,
                    'minMessage' => 'Your password should be at least {{ limit }} characters',
                    // max length allowed by Symfony for security reasons
                    'max' => 4096,
                ]),
            ],
        ])

И я хочу добавить bootstrap классов в эти поля, как мне это сделать?

1 Ответ

0 голосов
/ 19 июня 2020

У вас есть 2 способа. Если вы хотите получить полный контроль над используемыми классами и стилями, вам нужно изменить его на следующие

->add('email', EmailType::class, array('attr'=>['class'=>'form-control']))

Вы можете узнать о типах форм здесь: https://symfony.com/doc/current/reference/forms/types.html

Использование типа добавит валидацию на стороне клиента к вводу пользователя перед тем, как разрешить отправку формы.

Если вы не хотите добавлять свой собственный стиль, тогда twig действительно имеет встроенное оформление, это позаботится обо всем за вас и доступно для всех версий bootstrap, это не добавляет файлы css, но они уже должны быть включены на вашу страницу.

https://symfony.com/doc/current/form/form_themes.html

Просто добавьте следующую строку, прежде чем вставлять форму в шаблон

{% form_theme form 'bootstrap_4_layout.html.twig' %}
...