如何在 Symfony FormType 中强制 attr html5 为 false
How to force attr html5 to false in Symfony FormType
我正在尝试在 Symfony 5 和 Tempus Dominus Bootstrap4 Datetimepicker 之间进行处理。当事件存在时,我的日期时间输入表单仅适用于更新功能。我想向我的表单传递一个属性,但它似乎不起作用。
我有这个生成器:
$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 returns 我的输入类型是 "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 会创建两个日期时间输入。一个带有日期时间选择器,另一个是经典日期时间。
我真的不明白。
有人可以帮我解决这个问题吗?
谢谢。
最佳,
派
将您的构建器更改为:
$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
class,因为 symfony 会在需要时自行添加。
我正在尝试在 Symfony 5 和 Tempus Dominus Bootstrap4 Datetimepicker 之间进行处理。当事件存在时,我的日期时间输入表单仅适用于更新功能。我想向我的表单传递一个属性,但它似乎不起作用。
我有这个生成器:
$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 returns 我的输入类型是 "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 会创建两个日期时间输入。一个带有日期时间选择器,另一个是经典日期时间。
我真的不明白。
有人可以帮我解决这个问题吗?
谢谢。
最佳,
派
将您的构建器更改为:
$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
class,因为 symfony 会在需要时自行添加。