forms - 表单查询symfony 3.4中的空选项
问题描述
我必须在 query_builder 表单中显示一个实体
这是我的表单类型的代码:
$builder->add('dispositif', EntityType::class, array(
'class' => 'LeaPrestaBundle:EgwDispositif',
'label' => 'nomDispositif',
'required' => true,
'empty_data' => null,
'query_builder' => function( $er)
{
return $er->createQueryBuilder('d')
->where('d.isActive = :isActive')
->setParameter('isActive', 1 )
->orderBy('d.nomDispositif','ASC');
},
));
问题是该选项为空:
<select id="egw_presta_dispositif" name="egw_presta[dispositif]">
<option value="52"></option>
<option value="55"></option>
<option value="62"></option>
<option value="58"></option>
</select>
例如,除了值 52,还应该有一个“dispositif”标签(dispositif 的名称)。
它来自实体吗?
在此先感谢您的帮助!
解决方案
尝试使用包含您要显示的内容的 EgwDispositif 字段添加“choice_label”属性:
$builder->add('dispositif', EntityType::class, array(
'class' => 'LeaPrestaBundle:EgwDispositif',
/** label will be displayed next to your form field unless it's a translation key or else **/
'label' => 'Nom du dispositif',
'required' => true,
'empty_data' => null,
/** any field containing what you want to display as option label **/
'choice_label' => 'nomDispositif',
'query_builder' => function( $er)
{
return $er->createQueryBuilder('d')
->where('d.isActive = :isActive')
->setParameter('isActive', 1 )
->orderBy('d.nomDispositif','ASC');
},
));
您似乎将表单字段属性的选项 'label' 与选项 'choice_label' 混淆了。您可能希望您的标签成为用户会阅读的东西(但也许不是,这取决于您)
看看这里:https ://symfony.com/doc/current/reference/forms/types/entity.html
推荐阅读
- c# - 远程拒绝主 -> 主(预接收挂钩被拒绝)错误:未能将一些参考推送到
- sql-server - 如何将 IP 分配给 WSL2 和/或 Docker 容器,以便可以从本地网络访问它
- javascript - JS:setInterval 运行就好像设置了多个间隔
- html - 无法将按钮与列表项目符号对齐 - HTML/CSS
- java - 用Java编写递归函数以输出所有组合的一组单词
- javascript - Discord.js 使用新链接重新发布嵌入的图像
- flutter - 错误的完整快照版本
- r - 使用 R 在句子中重新定位 [ ] 中的单词
- java - “ClassA object = new ClassA();”之间的区别 和“新的ClassA();”?
- vmware - VMWare Fusion:无法打开内核扩展“com.vmware.kext.vmci”:没有这样的文件或目录