首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Symfony 3-名为"getResult“的未定义方法

Symfony 3-名为"getResult“的未定义方法
EN

Stack Overflow用户
提问于 2016-11-28 14:38:48
回答 1查看 2.3K关注 0票数 3
代码语言:javascript
复制
/**
    * Search result information between two dates
    *
*@Route("/search/{startDate}/{endDate}/{type}", name="maintenance_search_result")
    *@Method("GET")
    */
    public function searchResultAction($startDate, $endDate, $type)
    {
      $em = $this->getDoctrine()->getManager()->getRepository('CarMaintenanceBundle:Maintenance');
      $query = $em->createQueryBuilder('c')
        ->select('c.id')
        ->addSelect('c.type')
        ->addSelect('c.date')
        ->addSelect('c.cost')
        ->addSelect('c.remark')
        ->where('c.date > :SDATE')->setParameter('SDATE', $startDate)
        ->andWhere('c.date < :EDATE')->setParameter('EDATE', $endDate);

        if ("All" != $type){
            $query->andWhere('c.type = :TYPE1')->setParameter('TYPE1', $type);
        } 

        $query->orderBy('c.date', 'DESC')
          ->getQuery();

        $SearchRes = $query->getResult();

        return $this->render('maintenance/search_result.html.twig', array(
          'SearchResults'=> $SearchRes,));
}

我有以下错误:

试图调用类的名为"getResult“的未定义方法"Doctrine\ORM\QueryBuilder”。

当我这样写的时候,没有问题。它显示搜索结果。

代码语言:javascript
复制
public function searchResultAction($startDate, $endDate, $type)
    {
      $em = $this->getDoctrine()->getManager()->getRepository('CarMaintenanceBundle:Maintenance');

        if ("All" != $type){
          $query = $em->createQueryBuilder('c')
            ->select('c.id')
            ->addSelect('c.type')
            ->addSelect('c.date')
            ->addSelect('c.cost')
            ->addSelect('c.remark')
            ->where('c.date > :SDATE')->setParameter('SDATE', $startDate)
            ->andWhere('c.date < :EDATE')->setParameter('EDATE', $endDate)
            ->andWhere('c.type = :TYPE1')->setParameter('TYPE1', $type)
            ->orderBy('c.date', 'DESC')
            ->getQuery();
        } else {
          $query = $em->createQueryBuilder('c')
            ->select('c.id')
            ->addSelect('c.type')
            ->addSelect('c.date')
            ->addSelect('c.cost')
            ->addSelect('c.remark')
            ->where('c.date > :SDATE')->setParameter('SDATE', $startDate)
            ->andWhere('c.date < :EDATE')->setParameter('EDATE', $endDate)
            ->orderBy('c.date', 'DESC')
            ->getQuery();
        }
        $SearchRes = $query->getResult();
        return $this->render('maintenance/search_result.html.twig', array(
          'SearchResults'=> $SearchRes,));
    }

最短的代码有什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-28 14:44:32

您没有在任何地方分配getQuery()的结果:

代码语言:javascript
复制
    $query->orderBy('c.date', 'DESC')
      ->getQuery();

这会起作用的:

代码语言:javascript
复制
    $query = $query->orderBy('c.date', 'DESC')
      ->getQuery();
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40846866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档