- http://symfony.com/doc/current/forms.html
- http://symfony.com/doc/current/form/form_customization.html
- https://twig.symfony.com/doc/2.x/tags/use.html
{% form_theme form '@admin/Form/bootstrap...twig' %}
{% form_theme form _self %}
{% block hoge_widget %}
{% endblock %}
config/twig.yaml
twig:
form_themes: ['bootstrap_4_layout.html.twig']
デフォルトではdiv_layout.html.twigが指定されている
組み込みテーマの一覧は以下 https://github.com/symfony/symfony/tree/master/src/Symfony/Bridge/Twig/Resources/views/Form
div_layout.html.twig
↑
bootstrap_base_layout.html.twig
↑
bootstrap_4_layout.html.twig
↑
@admin/Form/bootstrap_4_layout.twig
継承元にフォールバックする
独自にフォームのテーマを定義したい場合
class ZipType extends AbstractType
{
}
{% block zip_widget %}
...
{% endblock zip_widget %}
のように、xxx_widget, xxx_row等で定義する
フォームのパーツ単位で定義することもできる
class FooType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name', TextType::class);
}
}
{% form_theme form _self %}
{% block _foo_name_widget %}
<div class="text_widget">
{{ block('form_widget_simple') }}
</div>
{% endblock %}