我有一个下拉字段(城市),我将此字段添加到UserType
$builder->add('name', 'text', array('label' => 'form.name', 'translation_domain' => 'FOSUserBundle'));
$builder->add('phone', 'text', array('label' => 'form.phone', 'translation_domain' => 'FOSUserBundle'));
$builder->add('cityId', 'entity', array(
'label' => 'form.city',
'translation_domain' => 'FOSUserBundle',
'class' => 'AppBundle:City',
// 'choice_label' => 'name',
// 'choice_value' => 'id',
));
但是当我提交表单时,cityId字段会向我发送城市名称而不是ID。 我该如何解决?
答案 0 :(得分:1)
我认为属性领域可以帮助你:) 在表单中,您应该添加property =>名字
$builder->add('cityId', 'entity', array(
'label' => 'form.city',
'translation_domain' => 'FOSUserBundle',
'class' => 'AppBundle:City',
'property' => 'name',
));
或者在您的实体中编写像
这样的toString函数$builder->add('cityId', 'entity', array(
'label' => 'form.city',
'translation_domain' => 'FOSUserBundle',
'class' => 'AppBundle:City',
// toString() function called
));
City.php
public function __toString()
{
return $this->name;
}