Jordan Dyckes
Jordan Dyckes

Reputation: 31

Symfony 2 (Doctrine) does not treat result as class object

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();
}

The above example is not working, my database has an object which active is true. The value $myClassObject equals result from database where active is true. This is an entity class. However, it is not treated as an object/class after retrieving from the database. Functions like get/set cannot be accessed.

Upvotes: 1

Views: 72

Answers (1)

Matteo
Matteo

Reputation: 39380

Try setting 1 instead of true in the active parameter and use equal instead LIKE as follow:

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

Hope this help

Upvotes: 1

Related Questions