如何在Symfony FormType中将attr html5强制设置为false

问题描述 投票:1回答:1

我正在尝试在Symfony 5和Tempus Dominus Bootstrap4 Datetimepicker之间进行交易。当存在事件时,我的Datetime输入表单仅与更新功能一起使用。我想将属性传递给表单,但似乎不起作用。

我有这个生成器:

    $builder->add('date', DateTimeType::class, [
            'required' => true,
            'widget' => 'single_text',
            'attr' => [
                'html5' => false,
                'placeholder' => 'Date',
                'class' => 'form-control datetimepicker-input',
                'data-target' => '#datetimepicker1'
            ],
        ]);

我的模板:

            <div class="row row-datetime">
                <div class="input-group date col" id="datetimepicker1" data-target-input="nearest">
                    {{ form_widget(form.date, {'html5':false } ) }}
                    <div class="input-group-append" data-target="#datetimepicker1" data-toggle="datetimepicker">
                        <div class="input-group-text datetimepicker-button">
                            <i class="fa fa-clock"></i>
                        </div>
                    </div>
                </div>
            </div>

{% block javascripts %}
    {{parent()}}
    <script>
        $('#datetimepicker1').datepicker({
            format: 'dd.MM.yyyy',
            });
    </script>
{% endblock %}

但是结果出乎意料,Chrome将我的输入类型返回为“ datetime-local”。

在另一个用于编辑现有事件的模板中,我有这段代码,没有form_widget:

            <div class="row row-datetime">
                <div class="input-group date col" id="datetimepicker1" data-target-input="nearest">
                    <input type="text" class="form-control datetimepicker-input" data-target="#datetimepicker1"/>
                    <div class="input-group-append" data-target="#datetimepicker1" data-toggle="datetimepicker">
                        <div class="input-group-text datetimepicker-button">
                            <i class="fa fa-clock"></i>
                        </div>
                    </div>
                </div>
            </div>

而且它的工作原理就像我不了解的魅力……如果我在第一个模板中尝试使用此代码,Twig将创建两个日期时间输入。一个带有datetimepicker,另一个带有经典的datetime。

我真的不明白。

有人可以帮我吗?

谢谢。

最佳,

Py

twig datetimepicker symfony5
1个回答
0
投票

将构建器更改为此:

$builder->add('date', DateTimeType::class, [
        'required' => true,
        'widget' => 'single_text',
        'attr' => [
            'placeholder' => 'Date',
            'class' => 'datetimepicker-input',
            'data-target' => '#datetimepicker1'
        ],
        'html5' => false,
    ]);

请注意,html5规范不在attr数组中。还要注意,您不必添加form-control类,因为symfony会在需要的地方自行执行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.