如何在Symfony2中显示每月的下拉菜单 [英] How to display a month-year dropdown in Symfony2

查看:125
本文介绍了如何在Symfony2中显示每月的下拉菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序中,用户hsa只通过在两个下拉列表中选择一个月份和一个年份来给出日期。我怎样才能做到这一点?



以下是我到目前为止所尝试的内容:



在我的表单中:



$ $ p $ $ builder-> add('date1','date',array(
'widget'=>'choice',
'empty_value'=>'',
'format'=>'MMMM-yyyy',
'input'=>'datetime',
'years'= >范围(日期('Y'),日期('Y') - 30,-1)

其中的实际工作和显示完全按照我的想法,但是在验证表单时,出现错误:

 此值无效

所需结果的屏幕截图:



解决方案

信用卡到期日期示例:

  $ builder-> add('expirationDate ','date',数组(
'label'=>'过期日期',
'小部件'=>'choice',
'empty_value'=> array('year'=>'Year','month'=> '月','日'=> 'Day'),
'format'=> 'dd-MM-yyyy',
'input'=> 'string',
'data'=>日期('Y-m-d'),
'年'=>范围(日期('Y'),日期('Y')+ 10),
));

然后您必须手动呈现此字段。



  {{form_row(form.expirationDate,{'date_pattern':'< span style = display:none;> {{day}}< / span> {{month}}< span class =delim&#47;< / span> {{year}}'} )}} 

覆盖 date_pattern 会隐藏日期选择。您将获得月/年格式。


In my application, the user hsa to give a date by only selecting a month and a year in two dropdown lists. How can I achieve that?

Here is what I've tried so far :

In my Form :

$builder->add('date1', 'date', array(
 'widget'      => 'choice',
 'empty_value' => '',
 'format'      => 'MMMM-yyyy',
 'input'       => 'datetime',
 'years'       => range(date('Y'), date('Y') - 30, -1)
)

which actually works and displays it exactly as I want but when validating the form, I get an error :

This value is not valid

A screenshot of the wanted result :

解决方案

Example for credit card expiration date:

$builder->add('expirationDate', 'date', array(
 'label' => 'Expiration date',
 'widget' => 'choice',
 'empty_value' => array('year' => 'Year', 'month' => 'Month', 'day' => 'Day'),
 'format' => 'dd-MM-yyyy',
 'input' => 'string',
 'data' => date('Y-m-d'),
 'years' => range(date('Y'), date('Y') + 10),
));

Then you must render this field manually.

Your form's twig template:

{{ form_row(form.expirationDate, {'date_pattern': '<span style="display: none;">{{ day }}</span> {{ month }} <span class="delim">&#47;</span> {{ year }}'}) }}

Overriding date_pattern will hide day select. You will get month / year format.

这篇关于如何在Symfony2中显示每月的下拉菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆