2012-06-23 26 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

相关问题