从阅读文档和另一个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();
}
答案 0 :(得分:0)
此查询将返回具有许多字段的doctrine实体。但是,您使用partial
个关键字,这些字段将为空。只有指定的字段才会填充数据。
如果您不想保湿对象,可以使用简单数组获取数据
->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY)