2013-04-03 28 views
2

是否可以在Symfony2中的實體查詢生成器中附加其他選項選項。Symfony2將選項添加到查詢生成器

這裏是我的代碼:

$builder->add('ship_to','entity',array(
     'class' => 'WICCommonBundle:CustomOptions', 
     'property' => 'option_value', 
     'query_builder' => function(EntityRepository $er) { 
      return $er->createQueryBuilder('co') 
       ->where('co.account=?0') 
       ->andWhere('co.option_field=?1') 
       ->orderBy('co.option_value', 'ASC') 
       ->setParameters(array(
        $this->account,"ship_to", 
       )); 
     }, 
     'empty_value' => 'Select Ship To', 
    )); 

我需要追加以下選項,這樣在下拉框中出現最後一次。

「新」 =>「添加新的」

我試圖加入這個做,但沒有奏效:

'choices' => array(
      'New' => 'Add New' 
     ), 

感謝您的幫助!

+0

在類中創建方法,它從存儲庫中獲取數據,添加數據並返回數據。 – mkjasinski

回答

0

兩條路走:

1)mkjasinski說什麼:創建一個工廠方法,它與最後的選擇結合數據,或

2)事件偵聽器添加到表單生成器它增加了在呈現表單之前的額外選項,如下所示:

$builder->addEventListener(
    FormEvents::POST_SET_DATA, 
    function(FormEvent $event) use($user, $factory){ 
     $form = $event->getForm(); 

     // get your form field 
     $field = $form->get('ship_to') 

     // ... alter the field so your data is added to it 
    } 
);