Symfony 4 - организовать расположение полей - PullRequest
0 голосов
/ 04 марта 2020

Используя Symfony 4, я задаюсь вопросом, существует ли простой способ организации макета отображения моих полей.

Пока я шаблонирую все в своих представлениях (например, для 2 столбцов):

<div class="row">
    <div class="col-md-6">
        {{ form_row(form.name) }}
    </div>
    <div class="col-md-6">
        {{ form_row(form.company) }}
    </div>
</div>
{{ form_rest(form) }}

Но я не хочу этого делать, я просто хочу визуализировать всю форму в моем виде и управлять шаблоном в моем FormBuilder. Я хотел бы написать что-то вроде:

$builder
    ->add('<div class="row"><div class="col-md-6">', HtmlType::class)
    ->add('name', TextType::class, [
        'label' => 'Nom'
    ])
    ->add('</div><div class="col-md-6">', HtmlType::class)
    ->add('company', TextType::class, [
        'label' => 'Société cliente'
    ])
    ->add('</div></div>', HtmlType::class);

Я посмотрел на документацию, но она довольно скудная, она показывает, как инертировать из существующих полей.

Есть ли способ создать это HtmlType для обработки простых тегов Html? или лучше?

Ответы [ 2 ]

0 голосов
/ 04 марта 2020

Лучшим решением было бы создать собственную тему формы. Ссылка на документацию здесь . Я сам этого не делал для создания настраиваемой сетки, но, полагаю, вы можете создать некоторые настраиваемые параметры типа с помощью OptionResolver, который расскажет вашему шаблону, как организовать ваши поля, а затем на основе этого вы сможете организовать свою настраиваемую тему формы так, как вам удобно.

0 голосов
/ 04 марта 2020

Вы должны быть в состоянии сделать что-то подобное:

$builder->add('your_field', YourFieldClass::class, [
    'attr' => ['class' => 'your css class'],
]);
...