字段类型实体和数据库Symfony2中的当前值

时间:2014-03-05 18:21:46

标签: php symfony symfony-2.1 symfony-forms

我正在使用Symfony2。我有两个实体,如下所示:

class User
{
    private $idUser;
    private $name;
    private $country;
    ...
}

class Country
{
    private $idCountry;
    private $namecountry;
    ...
}

我创建了一个这样的表单:

class UserType extends AbstractType
{
     /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('name','text')
            ->add('country', 'entity', array(
                'required' => false,
                'label' => 'Country',
                'class' => 'TestBundle:Country',
                'property' => 'namecountry',
                'empty_value' => false,
            ));
    }

    /**
     * @param OptionsResolverInterface $resolver
     */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'Test\TestBundle\Entity\User'
        ));
    }

    /**
     * @return string
     */
    public function getName()
    {
        return 'test_Testnbundle_user';
    }
}

一切都很好,但我想要修改一个用户:

  • 住在加拿大
  • 姓名是杰克。

每当表单出现时,我的问题就出现了,字段名称包含数据库中的当前值,但与country字段不同,它 not 在数据库中包含正确的值。怎么会这样?

1 个答案:

答案 0 :(得分:0)

您能否向我们展示您在用户和国家/地区之间定义的关系的配置?

只有在两个实体之间正确设置关系时,您应该工作。否则,它将无法正确匹配以设置所选值。