Symfony2 - 如何根据自定义查询获取实体对象?

时间:2011-11-23 12:21:18

标签: mysql orm symfony doctrine-orm php-5.3

这是我的自定义查询:

$query = $em->createQuery("SELECT max(d.id) FROM MyBundle:DBTableEntity d ");
$max_incoming_id = $query->execute(); 

我希望它返回实体对象,就像下面这样:

$EntityObj = $resource->getRepository("MyBundle:DBTableEntity")->findAll();

知道怎么做吗?

4 个答案:

答案 0 :(得分:1)

这样的事情应该有效

$EntityObjects = $resource->getRepository('MyBundle:DBTableEntity')
                         ->createQuery()
                         ->orderBy('id', 'DESC')
                         ->getResult();

$EntityObject = array_pop($EntityObjects);

答案 1 :(得分:1)

试试这个

$query = sprintf("SELECT s FROM BundleName:EntityClass s where s.field1 = %d and s.field2=%d", $field1, $field2);
$em = $this->getDoctrine()->getEntityManager();
$queryObj = $em->createQuery($query);
$entities = $queryObj->execute();

答案 2 :(得分:0)

使用excute,您会收到一系列结果(实体)。

所以你可以做$ entities = $ query.excute();

返回$ entities [0]; //这是你有一个结果;

array_pop($ entities)不起作用这会在symfony 2.6

中出错

答案 3 :(得分:0)

我想你会喜欢这种风格:

$EntityObj = $resource->getRepository("MyBundle:DBTableEntity")
                      ->findOneBy(array(), array('id' => 'DESC'));

:)