gpt4 book ai didi

symfony - 表单主题日期时间小部件 Symfony 2

转载 作者:行者123 更新时间:2023-12-03 23:51:11 24 4
gpt4 key购买 nike

我喜欢在我的表单中“表单主题”我的日期时间小部件。
我在其中创建了一个 fields.html.twig 文件:

{% block datetime_widget %}
{% spaceless %}
<div {{ block('widget_container_attributes') }}>
{{ '{{ day }}-{{ month }}-{{ year }}'|replace({
'{{ day }}': form_widget(form.day),
'{{ month }}': form_widget(form.month),
'{{ year }}': form_widget(form.year),
})|raw }}
{{ form_widget(form.hour, { 'attr': { 'size': '1' } }) }} : {{ form_widget(form.minute, { 'attr': { 'size': '1' } }) }} : {{ form_widget(form.second, { 'attr': { 'size': '1' } }) }}
</div>
{% endspaceless %}
{% endblock datetime_widget %}

我在表单 View 模板中输入了这一行
{% form_theme form 'AcmeDashboardBundle:Form:fields.html.twig' %}

日期时间小部件被呈现。但是日期和时间部分位于单独的 div 元素中。这将小部件分为 2 行。我想显示彼此相邻的日期和时间部分。

最佳答案

要实现这一点,您必须重新定义 datetime_widget 而不使用内置的 date_widget 和 time_widget(因为它们都用 div 包装),或者您可以重新定义 date_widget 和 time_widget 以删除它们的包装 div。

以下是实现第一个选项的方法:

{% extends 'form_div_layout.html.twig' %}

{% block datetime_widget %}
{% spaceless %}
{% if widget == 'single_text' %}1
{{ block('field_widget') }}
{% else %}
<div {{ block('widget_container_attributes') }}>
{{ form_errors(form.date.year) }}
{{ form_errors(form.date.month) }}
{{ form_errors(form.date.day) }}
{{ form_errors(form.time) }}
{{ form_widget(form.date.year) }}
{{ form_widget(form.date.month) }}
{{ form_widget(form.date.day) }}
{{ form_widget(form.time.hour, { 'attr': { 'size': '1' } }) }}:{{ form_widget(form.time.minute, { 'attr': { 'size': '1' } }) }}
</div>
{% endif %}
{% endspaceless %}
{% endblock datetime_widget %}

以下是实现第二个选项的方法:
{% extends 'form_div_layout.html.twig' %}

{% block date_widget %}
{% spaceless %}
{% if widget == 'single_text' %}
{{ block('field_widget') }}
{% else %}
{{ date_pattern|replace({
'{{ year }}': form_widget(form.year),
'{{ month }}': form_widget(form.month),
'{{ day }}': form_widget(form.day),
})|raw }}
{% endif %}
{% endspaceless %}
{% endblock date_widget %}

{% block time_widget %}
{% spaceless %}
{% if widget == 'single_text' %}
{{ block('field_widget') }}
{% else %}
{{ form_widget(form.hour, { 'attr': { 'size': '1' } }) }}:{{ form_widget(form.minute, { 'attr': { 'size': '1' } }) }}{% if with_seconds %}:{{ form_widget(form.second, { 'attr': { 'size': '1' } }) }}{% endif %}
{% endif %}
{% endspaceless %}
{% endblock time_widget %}

然后日期和时间将在同一个 div 中。显然,您可以通过添加所需的 html 在日期和时间之间添加一些空格

希望有帮助!

关于symfony - 表单主题日期时间小部件 Symfony 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9708470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com