Problemas con $ Registro> exportTo ('json') es que exportará todos los campos de registro. Y en la mayoría de los casos no es un comportamiento deseable (por ejemplo, cuando esta pieza de json se debe pasar al navegador). Una forma de limitar el alcance de la exportación es especificar campos en DQL seleccionar:
$user = Doctrine_Query::create()
->select('u.id, u.name')
->from('User u')
->addWhere('u.id = ?', $id)
->fetchOne();
$user_json = $user->exportTo('json');
$ user_json entonces tendrá algo como esto:
{
"id": 123,
"name": "John Smith",
"password": null,
"deleted": null
}
para que no se exponga valor del campo "contraseña", pero does exponer la estructura subyacente de la base de datos. De nuevo, puede que no sea lo que queremos. Lo que hago es especificar campos en DQL seleccione + alcanzar un precio de gama codificar entonces JSON:
$user = Doctrine_Query::create()
->select('u.id, u.name')
->from('User u')
->addWhere('u.id = ?', $id)
->fetchOne(array(), Doctrine::HYDRATE_ARRAY);
$user_json = json_encode($user);
En este caso JSON se parecerá a algo como:
{
"id": 123,
"name": "John Smith"
}
Segunda respuesta es muy buena. [http: // stackoverflow.com/preguntas/6706485/How-to-codificar la doctrina-entidades-a-JSON-en-symfony-2-0-ajax-aplicación] [1] [1]: http: // stackoverflow .com/questions/6706485/how-to-encode-doctrine-entities-to-json-in-symfony-2-0-ajax-application – csadan