0

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 を返し、そうでない場合は false を返します。ただし、既存の user からユーザー データを($usuario)返す場合、期待されるオブジェクトではなく、常に空の JSON 配列 ({}) が返されます。何か案は?

I var_dump($usuario) の場合、応答を返す前に、正しいフィールドと値がすべて出力されますusername

4

1 に答える 1

0

実際、ユーザーのすべてのプロパティは非公開です。ただし、json_encodeは、パブリックオブジェクトのプロパティのみをエンコードします。

JsonSerializableを実装できます。ここで詳細を参照するか、これらのプロパティをパブリックに設定してください(より悪い解決策)

お役に立てれば。

于 2012-12-28T07:58:47.023 に答える