Symfony2 Doctrine2使用partials

时间:2013-08-02 00:29:29

标签: symfony doctrine-orm

从阅读文档和另一个stackoverflow帖子,我认为如果我只想返回几个列数据,学说中的正确方法是使用部分。 (这是一个只读查询。)

但是下面的代码返回所有100列而不是我识别的3列。有人可以解释原因吗?

谢谢, MANISHA

public function showAction(Request $request)
{
    if ($request->getMethod() == 'GET') {
        $id = $request->get('locationid');
        $kfType = $request->get('type');
        $em = $this->getDoctrine()
                    ->getManager();

        $data = $em->createQueryBuilder()
                    ->select ( array( 'partial d.{id, locationid, kfFyp}' ))
                    ->from('DashDataBundle:Data',  'd')
                    ->where('d.locationid = :locationid')
                    ->setParameter('locationid', $id)
                    ->setMaxResults(100)
                    ->getQuery()
                    ->getResult();
    }

1 个答案:

答案 0 :(得分:0)

此查询将返回具有许多字段的doctrine实体。但是,您使用partial个关键字,这些字段将为空。只有指定的字段才会填充数据。

如果您不想保湿对象,可以使用简单数组获取数据

->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY)