0

我正在使用 Symfony2 和教义 2。

我需要知道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,否则返回 false。但是当从现有用户返回用户数据时($usuario),它总是返回一个空的 JSON 数组 ({}) 而不是预期的对象。有任何想法吗?

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

4

1 回答 1

0

事实上,您用户的所有属性都是私有的。然而 json_encode,只编码公共对象属性。

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

希望这可以帮助。

于 2012-12-28T07:58:47.023 回答