Symfony2:使用Collection

时间:2016-03-04 19:55:47

标签: symfony

如果某个表单中包含一个包含集合的实体,我就不能将错误冒充到集合级别。

实施例: 实体ProductBundle拥有产品实体集合。产品实体的字段为 name price 。 当字段包含错误时,它们会显示在Collection级别。

可视化:

  

ProductBundle

     

名称:SuperpricyBundle
Available_Until:2018/1

     

包含的商品:(< - 默认错误展示位置,尽管error_bubbling = false   

<小时/>   (&lt; - 可能在收集实体级别放置错误)
  位置:1
名称:咖啡机
价格:-50.00&lt; - 错误!! (&lt; - 可能在收集实体级别放置错误)      位置:2
名称:6杯价格:20.00

我可以在所有级别设置error_bubbling => false(实体级别,收集级别,收集实体级别),错误不断冒泡到收集级别。 不可能防止冒泡和/或冒泡到集合实体级别。

1 个答案:

答案 0 :(得分:0)

我在其他地方发现错误。它与Symfony处理表单输入的方式有关。

我的表单集是动态的。我添加了带有新索引的新项目(包括产品),从任意高数字开始,如111111:如果最后一个存储的元素具有输入索引[4],则下一个插入的将是111111,下一个111112等等。 我这样做是因为与其他用户的副作用:

如果您有3个项目存储[0]...[2]并且您在表单中添加了一个索引为[3]的新项目并提交,同时另一个用户也插入了一个新项目,这将是索引为[3],因此被替换。

我还无法解决这个问题。 但设置任意高指数并不起作用。 Symfony始终从[0]计入所有现有实体[n],第一个添加的项目将具有索引[n+1]。这至少适用于表单错误。

  

来自name='myform_mycollection_[500]_field'的表单输入错误   提交后,$form->handleRequest(..)是表单输入中的错误   name='myform_mycollection_[n+1]_field'