formType
->add("someday", DateTimeType::class, [
"date_widget" => "single_text",
"minutes" => ["00", "20", "40"],
"required" => true,
])
模板
{{ form_widget(form.someday.date) }}
{{ form_widget(form.someday.hour) }}
{{ form_widget(form.someday.minute) }}
生成的HTML(小时部分)
<select id="form_someday_time_hour" name="form[someday][time][hour]">
<option value="0">00</option>
<option value="1">01</option>
<option value="2">02</option>
<option value="3">03</option>
<option value="4">04</option>
<option value="5">05</option>
<option value="6">06</option>
<option value="7">07</option>
<option value="8">08</option>
<option value="9">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13" selected="selected">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
</select>
在这种情况下,选择带有前导零的小时(00,01,02 ... 23), 但我想改变这个选择框而不带前导零(0,1,2 ...... 23)。
我想生成此格式的HTML。 (小时部分)
<select id="form_someday_time_hour" name="form[someday][time][hour]">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13" selected="selected">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
</select>
我尝试在表单类型中指定格式,但没有任何更改。
模板方面是否有小部件选项?
谢谢你,如果你知道的话。
答案 0 :(得分:0)
尝试the Twig date filter并指定小时格式,不要像这样引导零:
{{ form_widget(form.someday.hour)|date('h') }}
使用the DateInterval.format指定格式。我认为这应该适合你。请试一试。
编辑#2
我不确定你为什么会收到这个错误。也许是因为日期过滤器位于错误的位置?你能试试这个:
$hours = new array();
for ($i = 0; $i <= 23; $i++) {
array_push($hours, strval($i));
}
...
->add("someday", DateTimeType::class, [
"date_widget" => "single_text",
"minutes" => ["00", "20", "40"],
"hours" => $hours,
"required" => true,
])
我不确定是否会修复它,但请尝试一下。如果这不起作用,也许你可以告诉我你想要&#34; date&#34;,&#34; hour&#34;和&#34;分钟&#34;以HTML格式呈现(更新您的问题帖子以显示);那么也许我们可以使用DateTimeType字段的格式。
编辑#3
为什么不试试呢:
->add("someday", DateTimeType::class, [
"format" => "dd H mm",
"minutes" => ["00", "20", "40"],
"required" => true,
])
我认为这对你有用。
编辑#4
试试这个。
date_widget
然后将显示为下拉列表。不确定为什么使用~/.AndroidStudio2.2/config/options
???
答案 1 :(得分:0)
不幸的是,这是不可能的。
查看代码,在此处识别添加前导零。
如果像这样重写,则可能是预期的行为。
- $hours[str_pad($hour, 2, '0', STR_PAD_LEFT)] = $hour;
+ $hours[$hour] = $hour;