2014-09-04 86 views
0

我只想获取最后一条记录,因此我无法在自定义构建回购中调用我的自定义查询。错误在下面。你知道它会是什么吗?无法找到自定义回购中的自定义查询

注意:正常find(),findBy()类似的查询工作正常。如果有更简单的方法,那么请告诉我如何去做。

感谢

错误:

Undefined method 'getLastRecord'. The method name must start with either findBy or findOneBy! 

主类:

namespace Booking\AdminBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* @ORM\Table(name="CashQuery") 
* @ORM\Entity(repositoryClass="Booking\AdminBundle\Entity\CashQueryRepository") 
* @ORM\Entity 
*/ 
class CashQuery 
{ 
} 

REPO:

namespace Booking\AdminBundle\Entity; 

use Doctrine\ORM\EntityRepository; 

class CashQueryRepository extends EntityRepository 
{ 
    public function getLastRecord() 
    { 
     return $this->getEntityManager() 
      ->createQuery(
       'SELECT d FROM AdminBundle:CashQuery d ORDER BY d.id DESC LIMIT 1' 
      ) 
      ->getResult(); 
    } 
} 

尝试与这一点:

$dcq = $em->getRepository('BookingAdminBundle:CashQuery')->getLastRecord(); 
if (! $dcq) { 
    echo 'CashQuery could not found'; 
    return false; 
} 
echo $dcq->getCreatedAt(); 
+0

我认为所有来自自定义实体存储库的查询应该以findBy或findOneBy开头。您是否尝试更改名称,并在开始处包含findBy或findOneBy? – Splendonia 2014-09-04 21:50:54

回答

2

好像你覆盖Entity注解。尝试删除第二个:

namespace Booking\AdminBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* @ORM\Table(name="CashQuery") 
* @ORM\Entity(repositoryClass="Booking\AdminBundle\Entity\CashQueryRepository") 
*/ 
class CashQuery 
{ 
} 
+0

哎呀。就是那个! – BentCoder 2014-09-04 22:05:24