Symfony2:如何在实体小部件中的“createQueryBuilder”内部进行获取连接

时间:2012-06-23 23:11:22

标签: symfony doctrine widget entity

我在实体窗口小部件的symfony表单类型中进行了以下设置:

$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 个答案:

答案 0 :(得分:1)

只需添加一个select子句:

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