"虽然预计至少有一行,但没有找到查询结果." 查询应该在Symfony中显示记录

mic*_*jnr 4 mysql doctrine symfony doctrine-orm

我正在尝试使用URL中的两个项目检索内容.这是应该执行的php/symfony代码:

    $em = $this->getDoctrine()->getEntityManager();

    $repository = $this->getDoctrine()
        ->getRepository('ShoutMainBundle:Content');

    $query = $repository->createQueryBuilder('p')
        ->where('p.slug > :slug')
        ->andWhere('p.subtocontentid > :parent')
        ->setParameters(array(
                    'slug' => $slug,
                    'parent'  => $page
                ))
        ->getQuery();

    $content = $query->getSingleResult();
Run Code Online (Sandbox Code Playgroud)

但是,执行此代码时,它返回以下错误:

虽然预计至少有一行,但未找到查询结果.

我做了一些测试,$slug并且$page变量中保存的数据保存了正确的信息.我还测试了MySQL查询,查询提出了所需的结果,这让我更加困惑.

我错过了什么吗?

jav*_*zac 8

由于这是回答了在这里

您收到此错误是因为您正在使用该 getSingleResult()方法.如果找不到单个结果,它会生成异常.getOneOrNullResult()如果查询没有任何结果,您可以使用replace来获取NULL.

Query#getSingleResult(): 检索单个对象.如果结果包含多个对象,则抛出NonUniqueResultException.如果结果不包含任何对象,则抛出NoResultException.纯/混合的区别不适用.


小智 3

您不想使用“=”而不是“>”吗?