2012-06-23 24 views
0

我在symfony的表單類型如下設置一個實體構件內「createQueryBuilder」:Symfony2的:如何使獲取連接的實體部件

$builder->add('work_unit', 'entity', array(
     'class' => 'TestProjectBundle:WorkUnit', 
     'property' => 'fullname', 
     'query_builder' => function (EntityRepository $er) use ($user_id) { 
      return $er->createQueryBuilder('wu') 
      ->leftJoin('wu.work_category', 'wc') 
      ->leftJoin('wu.workers', 'w') 
      ->where('w.id = :worker_id') 
      ->orderBy('wc.name, wu.name') 
      ->setParameter('worker_id', $user_id); }, 
     'expanded' => false, 
     'multiple' => false, 
     'empty_value' => '', 
    )); 

兩個連接都沒有取連接,這意味着仍然需要延遲加載來訪問'wu.work_category'中的一些屬性。

我怎樣才能實現連接提取連接?我搜索了很多頁面,但找不到示例。 任何幫助就可以了:-)

回答

1

只需添加一個SELECT子句:

$qb->select('we, wc, w'); 
+0

'query_builder'=>函數(EntityRepository $ ER)使用($ user_ID的){ 回報$ ER-> createQueryBuilder( 'wu') - > select('wc,w') - > leftJoin('wu.work_category','wc') - > leftJoin('wu.workers','w') - > where 'w.id =:worker_id') - > orderBy('wc.name,wu.name') - > setParameter('worker_id',$ user_id); }, 不幸的是不能正常工作,併產生此錯誤:第0行,col-1'SELECT wc,w'附近:錯誤:無法通過標識變量選擇實體而無需選擇至少一個根實體別名 – Nicki

相關問題