字段类型

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.2,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

字段类型

允许用户通过各种不同的HTML元素修改日期信息的字段。

此字段类型使用的底层数据可以是DateTime对象、字符串、时间戳或数组。只要输入选项设置正确,该字段将处理所有细节。

字段可以呈现为单个文本框、三个文本框(月、日和年)或三个选择框(请参阅小部件选项)。

基础数据类型 可以DateTime、字符串、时间戳或数组(请参见输入选项)
呈现为 单个文本框或三个选择字段
选项
覆盖选项
继承的选项
父类型 (如果文本),形式否则
DateType

基本用法

此字段类型是高度可配置的,但易于使用。最重要的选择是输入而且小部件

假设你有一个publishedAt字段的基础日期为DateTime对象。下面配置日期键入该字段为三个不同的选择字段:

1 2 3 4
构建器->add (“publishedAt”“日期”数组“输入”= >“datetime”“部件”= >“选择”));

输入选项必须更改为匹配基础日期数据的类型。例如,如果publishedAtField的数据是Unix时间戳,您需要设置输入时间戳

1 2 3 4
构建器->add (“publishedAt”“日期”数组“输入”= >“时间戳”“部件”= >“选择”));

该字段还支持数组而且字符串作为有效的输入选项值。

场的选择

小部件

类型字符串默认的选择

该字段应呈现的基本方式。可以是以下之一:

  • 选择:呈现三个选择输入。对象中定义了选择的顺序格式选择。
  • 文本:呈现一个类型为3的字段输入文本(月、日、年)。
  • single_text:呈现一个类型的输入日期文本在Syob娱乐下载mfony 2.0)。类型验证用户的输入格式选择。

输入

类型字符串默认的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”= >数组“年”= >“年”“月”= >“月”“天”= >“天”)));

类型数组默认的: 5年前到5年后

年份字段类型可用的年份列表。时,此选项才相关小部件选项设置为选择

个月

类型数组默认的: 1 ~ 12

月份字段类型可用的月份列表。时,此选项才相关小部件选项设置为选择

类型数组默认的: 1 ~ 31

日期字段类型可用的日期列表。时,此选项才相关小部件选项设置为选择

1
“天”= >范围(131

格式

类型整数字符串默认的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小部件。

data_timezone

类型字符串默认的:系统默认时区

输入数据存储的时区。这一定是其中之一PHP支持的时区

user_timezone

类型字符串默认的:系统默认时区

时区,用于如何向用户显示数据(因此也包括用户提交的数据)。这一定是其中之一PHP支持的时区

覆盖选项

by_reference

默认的

DateTime类被视为不可变对象。

error_bubbling

默认的

继承的选项

方法继承了这些选项形式类型:

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,则该字段将使用只读的属性,使字段不可编辑。

禁用

2.1

禁用选项是2.1版的新功能

类型布尔默认的

如果不希望用户修改字段的值,可以将禁用选项设置为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
  • 错误映射的左侧也接受一个点,它指的是字段本身。这意味着添加到字段中的任何错误都会添加到给定的嵌套字段中。
  • 右侧仅包含表单中字段的名称。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。