在数据库中,我有两个这样的表:
USER
================
ID, Name, idType
================
1 , Alex, 2
2 , Paul, 3
...
TYPES
=========
ID, Type
=========
1 , FirstType
2 , SecondType
3 , ThirdType
...
USER 表中的“idType”字段被 TYPES 表中的“ID”字段引用。
使用 Symfony2 我需要使用 Web 表单在我的 USER 表中创建一条新记录,因此我需要一个下拉框来设置字段“idType”。在我的 src/Acme/MyBundle/Form/Type/UserType.php 中,我可以创建并显示带有从我的 TYPES 表中提取记录的下拉框:
$builder->add('idType', 'entity', array('class' => 'AcmeMyBundle:Types','property' => 'type',));
无论如何,显然我不能在我的数据库中插入这个值,因为我需要在列表中显示“类型”字段(谁是人类可读的字符串),但我需要在数据库中插入引用的“ID”字段(整数) .
静态地,我将执行此操作,如下所示:
$builder->add('idType', 'choice', array('choices' => array('1' => 'FirstType', '2' => 'SecondType', '3' => 'ThirdType'), 'required' => false));
是否可以执行此操作?使用下拉框我需要从数据库中提取一个实体,显示该实体的一个字段,但选择插入另一个引用的字段。我阅读了文档:http ://symfony.com/doc/current/reference/forms/types/entity.html但这对我没有帮助。谢谢。