Symfony 4 Forms:在 QueryBuilder 中为 ChoiceType 字段实现每个实体的自定义排序

Symfony 4 Forms: implementing per-Entity custom sorting in QueryBuilder for ChoiceType fields

我似乎无法理解 Symfony (4) Form 组件的内部结构。

我想:

a) 存储每个实体(存储库?)关于默认排序顺序的信息,例如 $entityRepository->sortOrder = ['default' => ['LastName ASC', 'FirstName ASC'], 'custom1' => [...]];

b) 使用该信息指示表单使用 query_builder option/attribute 的 ChoiceType 表单字段

所以问题是,how/where我应该理想地存储该信息吗?我应该如何将其提供给 Form 对象/QueryBuilder?

如能指出以“行业标准”方式进行的方向,我将不胜感激。

Symfony Forms 附带一个 EntityType 允许您指定自定义查询:

https://symfony.com/doc/4.4/reference/forms/types/entity.html#ref-form-entity-query-builder

如果排序特定于表单,您可能希望在表单中内联构建查询(如上面 link 的示例)。如果实体的相同排序适用于多个表单,请将其提取到存储库中的方法中,并在以表单类型构建自定义查询时使用该方法。