字段类型
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.2,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
字段类型
允许用户通过各种不同的HTML元素修改日期信息的字段。
此字段类型使用的底层数据可以是DateTime
对象、字符串、时间戳或数组。只要输入选项设置正确,该字段将处理所有细节。
字段可以呈现为单个文本框、三个文本框(月、日和年)或三个选择框(请参阅小部件选项)。
基础数据类型 | 可以DateTime 、字符串、时间戳或数组(请参见输入 选项) |
呈现为 | 单个文本框或三个选择字段 |
选项 | |
覆盖选项 | |
继承的选项 | |
父类型 | 场 (如果文本),形式 否则 |
类 | DateType |
基本用法
此字段类型是高度可配置的,但易于使用。最重要的选择是输入
而且小部件
.
假设你有一个publishedAt
字段的基础日期为DateTime
对象。下面配置日期
键入该字段为三个不同的选择字段:
1 2 3 4
$构建器->add (“publishedAt”,“日期”,数组(“输入”= >“datetime”,“部件”= >“选择”));
的输入
选项必须更改为匹配基础日期数据的类型。例如,如果publishedAt
Field的数据是Unix时间戳,您需要设置输入
来时间戳
:
1 2 3 4
$构建器->add (“publishedAt”,“日期”,数组(“输入”= >“时间戳”,“部件”= >“选择”));
该字段还支持数组
而且字符串
作为有效的输入
选项值。
场的选择
输入
类型:字符串
默认的:datetime
的格式输入数据-即日期存储在基础对象上的格式。有效值为:
字符串
(如。2011-06-05
)datetime
(一个DateTime
对象)数组
(如。数组('year' => 2011, 'month' => 06, 'day' => 05)
)时间戳
(如。1307232000
)
从表单返回的值也将被规范化为这种格式。
谨慎
如果时间戳
使用,DateType
在32位系统上仅限于1901年12月13日星期五20:45:54 GMT和2038年1月19日星期二03:14:07 GMT之间的日期。这是由于PHP本身的局限性.
empty_value
类型:字符串
或数组
如果小部件选项设置为选择
,则该字段将表示为一系列的选择
盒子。的empty_value
选项可用于在每个选择框的顶部添加一个“空白”条目:
1 2 3
$构建器->add (“dueDate”,“日期”,数组(“empty_value”= >”));
或者,你可以指定一个字符串来显示"blank"值:
1 2 3
$构建器->add (“dueDate”,“日期”,数组(“empty_value”= >数组(“年”= >“年”,“月”= >“月”,“天”= >“天”)));
格式
类型:整数
或字符串
默认的:IntlDateFormatter::中等(或yyyy-MM-dd
如果小部件是single_text
)
选项传递给IntlDateFormatter
类,用于将用户输入转换为适当的格式。这是至关重要的小部件选项设置为single_text
,并定义用户如何输入数据。默认情况下,格式是根据当前用户地区确定的:这意味着不同的用户期望的格式也不同.您可以通过将格式作为字符串传递来覆盖它。
有关有效格式的详细信息,请参见日期/时间格式语法:
1 2 3 4 5
$构建器->add (“date_created”,“日期”,数组(“部件”= >“single_text”,这实际上是single_text的默认格式“格式”= >“yyyy-MM-dd”));
请注意
如果你想让你的字段呈现为HTML5“date”字段,你必须使用single_text
窗口小部件具有yyyy-MM-dd
格式(RFC 3339格式),如果您使用single_text
小部件。
继承的选项
方法继承了这些选项形式类型:
invalid_message
类型:字符串
默认的:此值无效
这是验证错误消息,如果输入到该字段的数据没有意义(即验证失败),将使用该消息。
例如,如果用户将无意义的字符串输入到时间字段不能转换为实时的,或者如果用户输入字符串(例如。苹果
)转换为数字字段。
正常(业务逻辑)验证(例如在设置字段的最小长度时)应该使用验证消息和验证规则(参考).
invalid_message_parameters
类型:数组
默认的:数组()
当设置invalid_message
选项时,您可能需要在字符串中包含一些变量。这可以通过在该选项中添加占位符并包括该选项中的变量来实现:
1 2 3 4 5
$构建器->add (“some_field”,“some_type”,数组(/ /……“invalid_message”= >'您输入的值无效-它应该包含%num%字母',“invalid_message_parameters”= >数组(“% num %”= >6)));
read_only
2.1
的read_only
选项在2.1中被更改为渲染为只读的
HTML属性。在此之前,它呈现为禁用
属性。使用禁用选项,如果您需要旧的行为。
类型:布尔
默认的:假
如果此选项为true,则该字段将使用只读的
属性,使字段不可编辑。
error_mapping
类型:数组
默认的:空
2.1
的error_mapping
选项是Symfony 2.1的新功ob娱乐下载能。
此选项允许您修改验证错误的目标。
假设您有一个名为matchingCityAndZipCode
这将验证城市和邮政编码是否匹配。不幸的是,您的表单中没有“matchingCityAndZipCode”字段,因此Symfony所能做的就是在表单顶部显示错误。ob娱乐下载
使用自定义错误映射,你可以做得更好:将错误映射到城市字段,这样它就会显示在它上面:
1 2 3 4 5 6 7 8
公共函数setDefaultOptions(OptionsResolverInterface$解析器){$解析器->setDefaults (数组(“error_mapping”= >数组(“matchingCityAndZipCode”= >“城市”,),));}
下面是映射左侧和右侧的规则:
- 左侧包含属性路径。
- 如果冲突是在类的属性或方法上生成的,那么它的路径就是“propertyName”。
- 类的项上生成的违例
数组
或ArrayAccess
对象时,属性路径为(indexName)
. - 您可以通过连接它们来构造嵌套的属性路径,用圆点分隔属性。例如:
地址[工作].matchingCityAndZipCode
- 错误映射的左侧也接受一个点
.
,它指的是字段本身。这意味着添加到字段中的任何错误都会添加到给定的嵌套字段中。 - 右侧仅包含表单中字段的名称。