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



我正试图在Symfony 5&Tempus Dominus引导程序4日期时间选择器。当事件存在时,我的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"。

在另一个编辑现有事件的模板中,我有这样的代码,Without 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会创建两个日期时间输入。一个带有日期时间选择器,另一个是经典的日期时间。

我真的不明白。

有人能帮我做这个吗?

谢谢。

最佳,

Py

将构建器更改为:

$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会在需要的地方自行添加。

最新更新