查询构建器在非对象上调用成员函数createQueryBuilder()

时间:2013-09-03 09:08:35

标签: php mysql sql oop symfony

我正在尝试在Symfony2.3中使用查询生成器,我不断收到错误: FatalErrorException: Error: Call to a member function createQueryBuilder() on a non-object in...line 45

这是我查询的第二部分,

$query = $tokenobject->createQueryBuilder('t')
        ->select('t.token','t.user', 't.expirationdate')
        ->where('t.user = :username','t.token = :token')
        ->setParameter('username', $Username)
        ->setParameter('token', $Token)
        ->orderBy('t.expirationdate', 'ASC')
        ->setMaxResults(1);

整个代码如果有帮助:

$confirmationrepository = $this->getDoctrine()
        ->getRepository('TravelTravelBundle:Confirmation')
        ->findByuser($Username);

        $query = $confirmationrepository ->createQueryBuilder('t')
        ->select('t.token','t.user', 't.expirationdate')
        ->where('t.user = :username','t.token = :token')
        ->setParameter('username', $Username)
        ->setParameter('token', $Token)
        ->orderBy('t.expirationdate', 'ASC')
        ->setMaxResults(1);
        $token = $query->getResult();

我知道事实$confirmationrepository正在正确查找表格列'user',并且$Username$Token(被路由到控制器)已正确设置和路由。

我的语法有问题,还是对正在发生的事情有其他解释?

2 个答案:

答案 0 :(得分:4)

$confirmationrepository = $this->getDoctrine()
        ->getRepository('TravelTravelBundle:Confirmation')
        ->findByuser($Username);

应该是

$confirmationrepository = $this->getDoctrine()
        ->getRepository('TravelTravelBundle:Confirmation');

答案 1 :(得分:0)

- > findByuser($用户名);获取一系列条目。因此$ confirmationrepository是一个数组,而不是您期望的存储库类。只需省略findByuser行。