如何从Doctrine获取特定信息

时间:2015-07-23 09:37:47

标签: symfony doctrine-orm

我试图从教义中获取单一信息。示例我希望通过其$id从doctrine中查找数据,但问题是该列与许多其他字段相关,例如它正在打印一千行数据。

我只需要找到该ID的名称,有没有人知道我该怎么做?仅通过查找其$id来显示名称。

$request = $this->getRequest();
$doctrine = $this->getDoctrine();

// Find selected publisher        
$criteria = array('id' => '101', 'active' => '0');
$result = $doctrine->getRepository('MyBundle:AllChannel')->findBy($criteria);

2 个答案:

答案 0 :(得分:2)

最好的方法是将结果保存为数组。

示例:

$result = $this->getDoctrine()
           ->getRepository('MyBundle:MyEntity')
           ->createQueryBuilder('e')
           ->select('e.name')
           ->where('e.id = :id')
           ->setParameter('id', $id)
           ->getQuery()
           ->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY);

注意:以上示例未经过测试,仅作为指示。

答案 1 :(得分:0)

我认为在这种情况下你需要的是getArrayResult()

$qb =  $this->em->createQueryBuilder();
$qb->select('channel');
$qb->from('MyBundle:AllChannel channel', '');
$qb->where('channel.id = :id');
$qb->setParameter('id', $id);
$result = $qb->getQuery()->getArrayResult();