在实体字段类型Symfony中的本机查询而不是createQueryBuilder

时间:2016-08-28 12:54:39

标签: sql forms symfony doctrine

也许有人遇到这样的问题然后请帮忙。我想在formbuilder中添加一个下拉字段,该字段将从本机sql查询中提供。我以我的形式做到了这一点:

->add('extensionId', 'entity', [
            'required' => false,
            'label' => 'Insurance Company',
            'class' => 'Bundle:Product',
            'query_builder' => function (ProductRepository $repo) {
                return $repo->getPGOperPG();
            }
        ])

如果我使用createQueryBuilder,它可以正常工作,如下所示:

public function getPGOperPG()
{
    return $this->createQueryBuilder('pgo')
        ->select('pgo')
        ->join('pgo.productGroups', 'pg')
        ->where('pg.id IN (677, 655, 625) AND pgo.isActive = true');
}

但是如果使用它我会得到错误:

public function getPGOperPG()
{
    $sql = <<<SQL
    SELECT product_group_option_id
    FROM product_groups_product_group_options
    WHERE product_group_id in (677, 655, 625)
    SQL;

    $rsm = new ResultSetMappingBuilder($this->getEntityManager());
    $rsm->addRootEntityFromClassMetadata('Bundle\Entity\Product', 'pgo');

    return $this->_em->createNativeQuery($sql, $rsm)
        ;
}

这是错误: enter image description here。 我知道只有CreateQueryBuilder对象是预期的。

问题:有没有办法将原生查询传递给下拉字段?也许还有其他形式或smth?

提前谢谢!!!

0 个答案:

没有答案