如何使用数据库中的数据在symfony2选择框中设置默认值

Ran*_*ngh 1 php forms repository symfony doctrine-orm

我有这个代码

->add('user', 'entity', array(
                            'class' => 'Acme\Entity\User',
                            'query_builder' => function(EntityRepository $er) use ($options)
     {                        return $er->createQueryBuilder('u')
                               ->orderBy('u.name', 'ASC');
                            },
            'data' => $option['id']
            ))
Run Code Online (Sandbox Code Playgroud)

它不起作用

public function buildForm(FormBuilderInterface $builder, array $options)


    {
            $builder
              ->add('description')

              ->add('user', 'entity', array(
                'class' => 'Acme\Entity\User',
                'query_builder' => function(EntityRepository $er) use ($options) {
                    return $er->createQueryBuilder('u');

                },
              'preferred_choices' => array('2')
              ))
        ;
    }
Run Code Online (Sandbox Code Playgroud)

Mik*_*ail 5

您可以使用以下某项之一:

  1. 在对象中设置默认值

    $cl->setUser($this->getDoctrine()->getEntityManager()->getReference('Acme:User',2));
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在表单构建器中使用首选选项:

    'preferred_choices' => array('2')
    
    Run Code Online (Sandbox Code Playgroud)
  3. 或者设置'property_path' => false并使用'data' => YourDefaultEnity