Symfony2预先在下拉列表中选择保存的值

时间:2014-12-19 15:29:26

标签: php mongodb symfony

我正在使用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"
}
[...]

我的问题是,当我重新加载表单时,下拉列表会选择第一个国家/地区,而不是我在用户对象中的国家/地区。所以我的问题是:如何在与我的用户相关联的国家/地区设置“已选择”标记?

0 个答案:

没有答案