假设Symfony2中有一个实体,它有一个字段bestfriend
,它是从满足复杂要求User
的实体列表中选择的一个实体。User
您可以通过指定它是实体字段类型来在表单中呈现此字段,即:
$builder->add('bestfriend', 'entity', array(
'class' => 'AcmeHelloBundle:User',
'property' => 'username',
));
此表单字段呈现为 <select>
,其中每个显示的值都在表单中:
<option value="user_id">user_username</option>
因此,可以通过使用<optgroup>
标签来突出显示朋友的这种特殊功能。
按照这个原则,我创建了一个字段类型,即,它创建了这个答案FriendType
中的选择数组,呈现如下:
$builder->add('bestfriend', new FriendType(...));
该类FriendType
创建了一个<select>
具有相同<option>
s 但在<optgroup>
s 下组织的组织。
我来解决问题了!提交表单时,框架会识别出用户字段不是 User 的实例,而是一个整数。如何让 Symfony2 理解传递的 int 是 User 类型实体的 id?