Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony CollectionType FormField:依赖于提交/发布的订单字段还是它们的索引?_Php_Symfony_Symfony Forms - Fatal编程技术网

Php Symfony CollectionType FormField:依赖于提交/发布的订单字段还是它们的索引?

Php Symfony CollectionType FormField:依赖于提交/发布的订单字段还是它们的索引?,php,symfony,symfony-forms,Php,Symfony,Symfony Forms,在Symfony 3.4中,CollectionType表单字段的项目似乎是按照提交/发布的顺序存储的,而不是按照这些索引的顺序存储的。这是正确的吗 我发现了不同的来源,它们说提交顺序没有效果,但只有索引用于创建排序顺序()。这与我所经历的恰恰相反。是否从Symfony 2更改为3?有没有办法改变这种行为 当然,我可以在表单类型中添加一个PRE_SUBMIT处理程序来再次反转列表。虽然这解决了这个问题,但我想了解为什么索引顺序对提交顺序没有影响,而对提交顺序有影响,尽管不同的来源告诉我不同的情况

在Symfony 3.4中,
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) }}