在DB中我有两个这样的表:
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',));
无论如何显然我不能在我的数据库中插入这个值因为我需要在列表中显示'Type'字段(谁是一个人类可读的字符串)但我需要在DB中插入引用的'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但这对我没有帮助。 感谢。