Doctrine2 findOneby函数返回空数组



我正在将Symfony2与Doctrine2一起使用。

我需要知道表格上是否存在username,所以我正在通过Ajax来调用此方法...

public function existeUsername()
{
    $req = $this->getRequest();
    $user = $req->request->get('user');
    $em = $this->getDoctrine()->getEntityManager();
    $usuario = $em->getRepository('RECURSIVAUserBundle:Usuario')->findOneByUsername($user);
    if ($usuario): 
        //user found
        $response = new Response(json_encode(array('error' => true, 'usuario' => $usuario, 'user' => $user)));
        $response->headers->set('Content-Type', 'application/json');
        return $response;
    else: 
        //did not found the user
        $response = new Response(json_encode(array('error' => false, 'user' => $user)));
        $response->headers->set('Content-Type', 'application/json');
        return $response;
    endif;
}

如果username存在于数据库中或错误(如果不是)中,则该方法会按预期返回为true。但是,从现有用户($usuario)返回用户数据时,它总是返回一个空的JSON数组({}),而不是预期的对象。有什么想法吗?

如果我 var_dump($usuario)在返回响应之前,它将打印出该 username的所有正确字段和值。

的确,用户的所有属性都是私人的。但是JSON_ENCODE,仅编码公共对象属性。

您可以实现Jsonserializable。在此处查看更多详细信息或将这些属性设置为公共(更糟糕的解决方案)

希望这会有所帮助。

相关内容

  • 没有找到相关文章