3
在我FormType類創建的選擇數組我有這樣的buildForm方法:Symfony2的表單生成器 - 從數據庫查詢
//...
->add('businessUnit', 'entity', array(
'class' => 'TrainingBundle:Employee',
'attr' => array('class' => 'form-control select2'),
'property' => 'businessUnit',
'empty_value' => 'All Business Units',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('e')
->groupBy('e.businessUnit')
->orderBy('e.businessUnit', 'ASC')
;
},
'required' => false
//...
這工作得很好,除了代替「businessUnit」被投<option>
標籤的值我得到了員工ID。我需要的是在Employee類中的所有不同businessUnits的下拉菜單。也許我應該使用choice
而不是entity
,但後來我不確定如何生成選擇數組。
ANSWER 作爲公認的答案說明我有這樣的功能
private function fillBusinessUnit() {
$er = $this->em->getRepository('TrainingBundle:Employee');
$results = $er->createQueryBuilder('e')
->groupBy('e.businessUnit')
->orderBy('e.businessUnit', 'ASC')
->getQuery()
->getResult()
;
$businessUnit = array();
foreach($results as $bu){
$businessUnit[$bu->getBusinessUnit()] = $bu->getBusinessUnit();
}
return $businessUnit;
}
曾在EntityManager的傳遞到窗體。並且還將 use Doctrine\ORM\EntityManager;
置於表格頂部
謝謝,這是我想的正確軌道。我怎麼會得到'$ er'變量呢? –
我編輯了答案:) @NickBarrett – ponciste
謝謝! 我不得不做一些改變,但它現在工作:)(把原來的問題的變化) –