如何在 formbuilder 中使用带有选择标签的查询生成器?

How can I use the querybuilder with choice label in formbuilder?

我正在使用带有选择标签的 formbuilder querybuilder:

 $options['query_builder'] = function (EntityRepository $er) use ($fieldId) {
        $output = $er->createQueryBuilder('c')
        ->orderBy('c.name', 'ASC');
        return $output;
 };

 $options['choice_label'] = 'category';

效果很好,当我尝试获取名称时也是如此:

 $options['choice_label'] = 'name';

但我需要的是下拉菜单中两者的组合,但仍保持顺序。

   $options['choice_label'] = 'category -> name';

我不知道该怎么做。我很感激任何建议。

'choice_label' 也可以与函数一起使用 (docs).

'choice_label' => function (Category $category) {
    return $category->getId() . ' -> ' . $category->getName();
}

按类别名称对结果进行排序应该可行:

'query_builder' => function (EntityRepository $er) use ($fieldId) {
    $output = $er->createQueryBuilder('c')
        ->join('c.category', 'ca')
        ->orderBy('ca.name', 'ASC')
        ->addOrderBy('c.name', 'ASC');
    return $output;
 };