为了账号安全,请及时绑定邮箱和手机立即绑定

Symfony - 集合表单原型不采用 html 类属性

Symfony - 集合表单原型不采用 html 类属性

DIEA 2023-09-21 16:38:15
我正在尝试添加带有幻灯片集合的轮播,但无法设置嵌入表单的样式。我的原型跳过了表单中的一些类属性。 文档在这里我的轮播类型:    public function buildForm(FormBuilderInterface $builder, array $options)    {        $builder->add('slides', CollectionType::class, [            'entry_type' => SlideType::class,            'allow_add' => true,            'allow_delete' => true,            'prototype' => true,            'by_reference' => false        ]);    }我的幻灯片类型:    public function buildForm(FormBuilderInterface $builder, array $options)    {        $builder            ->add('title', TextType::class, [                'attr' => [                    'class' => 'form-control'                ],                'required' => false            ])            ->add('url', UrlType::class, [                'attr' => [                    'class' => 'form-control'                ],                'required' => false            ])            ->add('file', FileType::class);    }多么新的添加表单显示:<div class="slide">  <div id="carousel_slides_3">    <div>      <label for="carousel_slides_3_title">Title</label>      <input type="text" id="carousel_slides_3_title" name="carousel[slides][3][title]" class="form-control">    </div>    <div>      <label for="carousel_slides_3_url">Url</label>      <input type="text" id="carousel_slides_3_url" name="carousel[slides][3][url]" class="form-control" inputmode="url">    </div>    <div>      <label for="carousel_slides_3_file" class="required">File</label>      <input type="file" id="carousel_slides_3_file" name="carousel[slides][3][file]" required="required">    </div>  </div></div>新表单不显示class="form-group"属性。我的配置或 javascript 有什么问题?
查看完整描述

1 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

它的工作原理是在 SlideType 端添加类属性并form_row在模板端使用:


我的幻灯片类型:


    public function buildForm(FormBuilderInterface $builder, array $options)

    {

        $builder

            ->add('title', TextType::class, [

                'row_attr' => [

                    'class' => 'form-group'

                ],

                'attr' => [

                    'class' => 'form-control'

                ],

                'required' => false

            ])

            ->add('url', UrlType::class, [

                'row_attr' => [

                    'class' => 'form-group'

                ],

                'attr' => [

                    'class' => 'form-control'

                ],

                'required' => false

            ])

            ->add('file', FileType::class, [

                'row_attr' => [

                    'class' => 'form-group'

                ],

                'attr' => [

                    'class' => 'form-control'

                ]

            ]);

    }

我的 carousel_edit.html.twig:


{% block body %}

    <div class="row">

        <div class="col-lg-12">

            <div class="card card-default">

                <div class="card-body">

                    {{ form_start(form) }}

                        <div class="slides" data-prototype="{{ form_widget(form.slides.vars.prototype)|e('html_attr') }}">

                            {% for slide in form.slides %}

                                <div class="slide">

                                    {{ form_row(slide.title) }}

                                    {{ form_row(slide.url) }}

                                    {{ form_row(slide.file) }}

                                </div>

                            {% endfor %}

                        </div>


                    <button type="button" class="btn btn-success add_item_link" data-collection-holder-class="slides">+</button>

                    <button type="button" class="btn btn-danger remove_item_link" data-collection-holder-class="slides">-</button>


                    <div class="form-footer pt-4 pt-5 mt-4 border-top">

                        <button type="submit" class="btn btn-primary btn-default">Save</button>

                    </div>


                    {{ form_end(form) }}

                </div>

            </div>

        </div>

    </div>

{% endblock %}


查看完整回答
反对 回复 2023-09-21
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信