实体字段类型

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.1,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

实体字段类型

一个特殊的选择字段的设计从教义实体加载选项。例如,如果你有一个类别实体,您可以使用该字段来显示选择的所有领域,或者一些类别从数据库对象。

呈现为 可以各种标记(见选择字段类型)
选项
覆盖选项
  • “选择”
  • “choice_list”
继承的选项
父类型 选择
EntityType

基本用法

实体所需类型只有一个选择:在列出的实体应该选择字段:

1 2 3 4
美元构建器- >add (“用户”,“实体”,数组(“类”= >“AcmeHelloBundle:用户”,“属性”= >“用户名”));

在这种情况下,用户对象将从数据库加载和呈现为一个选择标签,一组单选按钮或复选框(这取决于多个扩大值)。如果没有一个实体对象__toString ()方法财产选项是必需的。

使用自定义查询的实体

如果您需要指定一个自定义查询时使用获取的实体(如您只想返回一些实体,或需要订购),使用query_builder选择。最简单的方法使用的选项如下:

1 2 3 4 5 6 7 8 9 10
使用学说\ORM\EntityRepository;/ /……美元构建器- >add (“用户”,“实体”,数组(“类”= >“AcmeHelloBundle:用户”,“query_builder”= >函数(EntityRepository美元){返回美元- >createQueryBuilder (“u”)- >orderBy (“u.username”,“ASC”);}));

选择标签,复选框或单选按钮

这一领域可能呈现为不同的HTML字段之一,根据扩大多个选项:

元素类型 扩大 多个
选择标记
选择标签(多个属性) 真正的
单选按钮 真正的
复选框 真正的 真正的

场的选择

类型:字符串要求

类的实体(如。AcmeStoreBundle:类别)。这是一个完全限定类名(如。Acme \ \ StoreBundle \实体类别之前)或简单的别名(如图所示)。

财产

类型:字符串

这个属性应该用于显示在HTML元素实体作为文本。如果留空,实体对象将转换为一个字符串,所以必须有一个__toString ()方法。

group_by

类型:字符串

这是一个属性的路径(如。author.name用于组织)
可用选项。它只能当呈现作为选择标记,并通过添加optgroup标签选项。选择,不为这个属性返回一个值路径直接呈现在选择标签,没有optgroup周围。

query_builder

类型:学说\ ORM \ QueryBuilder或关闭

如果指定,这是用于查询选项的子集(以及他们的顺序),应该使用的字段。这个选项的值可以是一个QueryBuilder对象或一个闭包。如果使用一个闭包,它应该带一个参数,即EntityRepository的实体。

新兴市场

类型:字符串默认的:默认的实体管理器

如果指定,指定的实体管理器将用于负载的选择而不是默认的实体管理器。

覆盖选项

选择

默认的:

choice_list

默认的:所有实体的选择

将默认为所有实体的选择选择上面记录的选项。

继承的选项

这些选项的继承选择类型:

多个

类型:布尔默认的:

如果这是真的,用户将能够选择多个选项(而不是只选一个选项)。这取决于的价值扩大选项,这将使选择标记或复选框如果真选择标签或单选按钮如果假。返回的值是一个数组。

请注意

如果你正在与教义的实体的集合,它将有助于阅读的documention收集字段类型。此外,还有一个完整的示例的食谱如何嵌入一组形式

扩大

类型:布尔默认的:

如果设置为真,单选按钮或复选框将会呈现(取决于多个值)。如果错误,选择元素呈现。

preferred_choices

类型:数组默认的:数组()

如果指定这个选项,然后是一个子集的所有选项将移动到顶部的选择菜单。以下将“巴兹”选项,与视觉之间的分隔符,其余的选项:

1 2 3 4
美元构建器- >add (“foo_choices”,“选择”,数组(“选择”= >数组(“foo”= >“Foo”,“酒吧”= >“酒吧”,“记者”= >“记者”),“preferred_choices”= >数组(“记者”)));

注意,当呈现作为优先选择才有其意义选择元素(即。扩大是假的)。优先选择和正常的选择是由一组分离视觉虚线(即。- - - - - - - - - - - - - - - - - - -)。这可以定制在呈现字段:

  • 嫩枝
  • PHP
1
{{form_widget(形式。foo_choices,{“分离器”:“= = = = = '})}}

empty_value

类型:字符串布尔

这个选项决定是否一个特殊的“空”选项(如。“选择一个选项”)将出现在顶部的选择小部件。此选项仅适用于如果扩大多个选项设置为false。

  • 添加一个空值与“选择一个选项”:

    1 2 3
    美元构建器- >add (“州”,“选择”,数组(“empty_value”= >选择一个选项的));
  • 保证没有“空”的价值选择是显示:

    1 2 3
    美元构建器- >add (“州”,“选择”,数组(“empty_value”= >));

如果你离开empty_value选项设置,然后一个空白(无文本)选项将自动添加当且仅当要求选项是错误的:

1 2 3 4
/ /一个空白(没有文本)选项将被添加美元构建器- >add (“州”,“选择”,数组(“要求”= >));

这些选项的继承类型:

要求

类型:布尔默认的:真正的

如果这是真的,一个HTML5必需属性将会呈现。相应的标签还将呈现的要求类。

这是肤浅的和独立的验证。在最好的情况下,如果你让Symfony猜ob娱乐下载你的字段类型,那么这个选项的值将从你的猜测验证信息。

标签

类型:字符串默认的:标签是“猜”字段名称

设置标签时,将使用渲染。设置标签也可以直接在模板:

1
{{了form_label (form.name '你的名字')}}

read_only

2.1

read_only选择是改变2.1年来呈现只读的HTML属性。以前,它呈现为一个禁用属性。使用禁用选择如果你需要旧的行为。

类型:布尔默认的:

如果这个选项是真的,该领域将呈现只读的属性字段不可编辑。

禁用

2.1

禁用选择是新的2.1版本中

类型:布尔默认的:

如果你不想让用户修改一个字段的值,您可以设置
禁用的选项为true。任何提交的值将被忽略。

error_bubbling

类型:布尔默认的:除非表单复合

如果这是真的,这一领域的任何错误将传递给父字段或形式。例如,如果正常字段设置为true,任何错误的字段将被附加到的主要形式,而不是特定的字段。

2.1

error_mapping选择新Symfony 2.1。ob娱乐下载

error_mapping

类型:数组默认的:

这个选项允许您修改验证错误的目标。

想象你有一个自定义的命名方法matchingCityAndZipCode验证城市和邮编是否匹配。不幸的是,没有“matchingCityAndZipCode”
在表单字段,所以Symfony所能做的一切是显示错误的形式。ob娱乐下载

自定义错误映射,你可以做得更好:误差映射到城市字段以便它上面显示:

1 2 3 4 5 6 7 8
公共函数setDefaultOptions(OptionsResolverInterface美元解析器){美元解析器- >setDefaults (数组(“error_mapping”= >数组(“matchingCityAndZipCode”= >“城市”)));}

这里的规则是左边和右边的映射:

  • 左侧包含属性的路径。
  • 如果违反上生成一个类的属性或方法,它的路径是“propertyName”。
  • 如果违反上生成一个条目的数组ArrayAccess对象,属性路径(indexName)
  • 您可以构建嵌套属性路径通过连接,分离属性点。例如:地址[工作].matchingCityAndZipCode
  • 左边的错误映射还接受一个点,指领域本身。这意味着任何错误添加到字段添加到给定的嵌套的字段。
  • 右侧包含简单的表单中字段的名称。

映射

类型:布尔

如果你希望这个领域被忽略阅读或写作对象时,你可以设置映射选项

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。