Php Symfony CollectionType FormField:依赖于提交/发布的订单字段还是它们的索引?
在Symfony 3.4中,Php Symfony CollectionType FormField:依赖于提交/发布的订单字段还是它们的索引?,php,symfony,symfony-forms,Php,Symfony,Symfony Forms,在Symfony 3.4中,CollectionType表单字段的项目似乎是按照提交/发布的顺序存储的,而不是按照这些索引的顺序存储的。这是正确的吗 我发现了不同的来源,它们说提交顺序没有效果,但只有索引用于创建排序顺序()。这与我所经历的恰恰相反。是否从Symfony 2更改为3?有没有办法改变这种行为 当然,我可以在表单类型中添加一个PRE_SUBMIT处理程序来再次反转列表。虽然这解决了这个问题,但我想了解为什么索引顺序对提交顺序没有影响,而对提交顺序有影响,尽管不同的来源告诉我不同的情况
CollectionType
表单字段的项目似乎是按照提交/发布的顺序存储的,而不是按照这些索引的顺序存储的。这是正确的吗
我发现了不同的来源,它们说提交顺序没有效果,但只有索引用于创建排序顺序()。这与我所经历的恰恰相反。是否从Symfony 2更改为3?有没有办法改变这种行为
当然,我可以在表单类型中添加一个PRE_SUBMIT
处理程序来再次反转列表。虽然这解决了这个问题,但我想了解为什么索引顺序对提交顺序没有影响,而对提交顺序有影响,尽管不同的来源告诉我不同的情况。我做错什么了吗?消息来源是否不正确?是否有控制这种行为的选项
上下文 在Symfony 3.4中,我创建了一个简单的表单,其中包括一个
CollectionType
字段,以显示ToDoEntry
实体的列表
虽然条目在数据库中以升序(最早的条目优先)存储,但它们应该以降序的形式显示(最新的条目优先)。因此,在细枝模板中,我只是简单地反转列表。因此,在提交表单时,条目按降序发布,而索引仍按升序发布
提交后,表单列表存储为已提交:按降序排列。因此,索引似乎没有效果,只考虑提交顺序
//来自类型
类MyFormType扩展了AbstractType{
...
公共函数buildForm(FormBuilderInterface$builder、array$options){
$builder
->添加('todoEntries',CollectionType::类,数组(
'entry_type'=>ToDoEntryType::class,
...
),
...
))
}
{# Twig Template #}
{{ form_start(form) }}
...
{% for todoEntry in form.todoEntries|reverse %} // revers the list...
{{ form_row(todoEntry) }}
{% endfor %}
{{ form_end(form) }}