2015-10-07 106 views
0

我有一个控制器来获取JSON数据,并从数据库中选择一个值,我的问题是,我得到DEJSON数据,但当我尝试选择数据库价值我总是得到[]作为结果。Symfony 2控制器获取JSON数据,但数据库查询不获取值

这是我的控制器代码。

public function stockAction(Request $request){ 
    $em = $this->getDoctrine()->getManager(); 
    . 
    . 
    . 
    if($request->isXmlHttpRequest()){ 

     $data = $request->getContent(); 
     $repository = $this->getDoctrine() 
      ->getRepository('AppBundle:Objeto'); 

     $query = $repository->createQueryBuilder('p') 
      ->where('p.reffabrica = :code') 
      ->setParameter('code', $data) 
      ->getQuery(); 

     $resultado = $query->getResult(); 

     return new JsonResponse(json_encode($resultado)); 
    } 
} 

编辑:

解决使用此代码:

if($request->isXmlHttpRequest()){ 

     $data = $request->getContent(); 

     $code = "'" . $data . "'"; 

     $repository = $this->getDoctrine() 
      ->getRepository('AppBundle:Objeto'); 

     $query = $repository->createQueryBuilder('p') 
      ->where('p.reffabrica = ' . $code) 
      ->getQuery(); 

     $resultado = $query->getArrayResult(); 

     return new JsonResponse($resultado); 
    } 
+0

是什么'$ data'包含...? – COil

+0

$ data包含一个字符串 – Wasitxu

+0

它的值是什么? – COil

回答

0

您应该转储$ resultado是肯定的。在任何情况下,这条线是错误的

return new JsonResponse(json_encode($resultado)); 

json_encode参数必须是一个数组:

return new JsonResponse($resultado); 
+0

现在我的查询获取参数,我更改了createquerybuilder的格式。 ('p.reffabrica ='。$ codi) - > getQuery();' 现在查询有正确的格式,但变量var('p.reffabrica ='。$ codi) '$ query = $ repository-> $ resultado获取一个空对象。任何人都知道问题在哪里? – Wasitxu