2014-07-15 32 views
0

我試圖用symfony2構建一個非常簡單的應用程序。Symfony2 - FOS UserBundle - 用數據從數據庫覆蓋下拉列表的覆蓋寄存器形式

我已經安裝並配置了帶有HWI Oauth2的FOS UserBundle。

這工作正常,但我想修改註冊表格,以便它有一個下拉列表,其中的數據來自我的數據庫中的數據由原則拉出。

我沒有在Symfony doc上找到任何東西。 。

有人可以提供一個建議嗎?

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('email', 'email', array('label' => 'form.email', 'translation_domain' => 'FOSUserBundle')) 

     ->add('username', null, array('label' => 'form.username', 'translation_domain' => 'FOSUserBundle')) 


     **/**** This Works and give a dropdownlist but i want to get this list from database instead of hard coded data how can I achieve that ? *****/** 
     ->add('status_type', 'choice', array(
     'choices' => array(
      '' => 'Please Select...', 
      'developper' => 'Android Developper', 
      'architect' => 'Android or Mobile Architect', 
      'mobile' => 'Mobile Developper', 
      'web and mobile' => 'Web and Mobile Developper', 
     ))) 

     ->add('plainPassword', 'repeated', array(
      'attr' => array('class' => 'form-control'), 
      'type' => 'password', 
      'options' => array('translation_domain' => 'FOSUserBundle'), 
      'first_options' => array('label' => 'form.password'), 
      'second_options' => array('label' => 'form.password_confirmation'), 
      'invalid_message' => 'fos_user.password.mismatch', 
     )) 
    ; 
} 

回答

1

這是一個示例代碼;

$builder->add('status_type', 'entity', array(
    'class' => 'AcmeDemoBundle:Status', 
    'property' => 'status_name', 
)); 

,或者如果你需要自定義查詢:(您需要調整您的架構查詢)

$builder->add('status_type', 
       'entity', 
       array(
        'class'=>'AcmeDemoBundle:Status', 
        'property'=>'status_name', 
        'query_builder' => function ($repository) 
        { 
         return $repository->createQueryBuilder('s') 
           ->where('s.status_type = ?1') 
           ->setParameter(1, 'basic') 
           ->add('orderBy', 's.sort_order ASC'); 
        } 
        ) 
      ); 

獲取更多信息,您可以在http://symfony.com/it/doc/current/reference/forms/types/entity.html

找到相關文檔