php - 如何在表单构建器中使用带有选择标签的查询构建器?
问题描述
我正在使用带有选择标签的表单构建器查询构建器:
$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;
};
推荐阅读
- excel - 我需要根据excel中另一列中的一天中的时间对列中的单元格进行平均,即早上、下午和晚上
- javascript - Phaser3:如何将相机图片作为小地图功能制作为不同的场景
- javascript - 仅对嵌套对象的“数字”值求和的问题
- excel - 如何根据单元格值将行的内容从一个表移动到另一个表?
- html - 使用模板变量时,Django 模板不呈现 CSS
- mobile - 更改为桌面站点模式
- r - 从 R 中的现有列在空间数据框中创建一个新列
- javascript - Javascript不一致的舍入
- java - org.mockito.exceptions.misusing.InvalidUseOfMatchersException:预期 2 个匹配器,记录 1 个:
- python - 如何避免向相反方向移动