Symfony 2(Doctrine)不会将结果视为类对象

时间:2016-11-22 13:51:18

标签: php symfony doctrine-orm

use AppBundle\Entity\classObject;

/**
 * @Route("route/sub/action", name="methodName")
 * @Method({"POST"})
 */
public function doMethod(Request $request)
{
    $content;
    $myClassObject = $this->returnObject();

    if ($myClassObject) {
        $myClassObject-> **NOTHING EXISTS...**
    } else { $content = '[{ "result":"0" }]'; }

    $response = new Response($content);
    return $response;
}
/*
 * @return classObject
 */
private function returnObject() {
    $em = $this->getDoctrine()->getEntityManager();
    $repo = $em->getRepository('AppBundle:classObject');
    return $repo->createQueryBuilder('o')->where('o.active LIKE :active')->setParameter('active', true)->getQuery()->getOneOrNullResult();
}

上面的示例不起作用,我的数据库有一个active为true的对象。值$myClassObject等于active为true的数据库的结果。这是一个实体类。但是,从数据库中检索后,它不会被视为对象/类。无法访问get / set等函数。

1 个答案:

答案 0 :(得分:1)

尝试在1参数中设置true而不是active,然后使用equal代替LIKE,如下所示:

   return $repo->createQueryBuilder('o')
      ->where('o.active = :active')
      ->setParameter('active', 1)
      ->getQuery()->getOneOrNullResult();

希望这个帮助