我正在使用Symfony2和Mongodb。我有两个文件(对象),用户和国家。国家/地区文档嵌入到用户文档中:
/**
* @MongoDB\EmbeddedDocument
*/
class Country
和我的用户文档:
/**
* @MongoDB\EmbedOne(targetDocument="Country")
*/
protected $country;
我将我的国家/地区formType嵌入到我的用户表单类型中,如下所示:
UserFormType:
$builder->add('country', new CountryType())
和CountryType:
$builder->add('libelle', 'document', array(
'label' => false,
'class' => 'ELCoreBundle:Country',
'property' => 'libelle',
));
在我的控制器中:
$form = $this->createForm(new UserFormType(), $user);
[...]
return array('edit_form' => $form->createView());
我的模板:
{{ form_errors(edit_form.country) }}
{{ form_widget(edit_form.country) }}
表单渲染得很好,我的所有国家/地区都将libelle作为html,国家/地区ID作为下拉列表中的值。在保存操作上,文档国家/地区按预期嵌入到用户中:
[...]
"country": {
"_id": ObjectId("5494357b84114f7b067b23d7"),
"libelle": "Argentina"
}
[...]
我的问题是,当我重新加载表单时,下拉列表会选择第一个国家/地区,而不是我在用户对象中的国家/地区。所以我的问题是:如何在与我的用户相关联的国家/地区设置“已选择”标记?