我有一系列由查询生成器提供的事件。所有实体都必须显示在选择字段中,使用未来事件作为首选。两个部分都应按日期(升序)排序。到目前为止,它通过以下方式运行良好:
->add('event', EntityType::class, array(
'class' => 'App:Event',
'choice_label' => 'name',
'expanded' => false,
'multiple' => false,
'required' => false,
'placeholder' => '-',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('e')
->orderBy('e.date', 'ASC');
},
'preferred_choices' => function ($event) {
if($event->getDate() > new \DateTime()){
return true;
}
return false;
}
))
由于对 Symfony 4.3 的更新,不再保留首选选项的排序顺序,如下所述: https ://github.com/symfony/symfony/pull/30985 我没有首选选项数组,因为我使用一个可调用来决定将来发生哪个事件。我现在如何对首选选项进行排序?我在不断变化的描述中找不到任何线索。除了在表单构建器之外创建一系列事件之外,真的没有其他方法了吗?