Trouble with $ Record-> ExportTo ('json') est qu'il va exporter tous les champs d'enregistrement. Et dans la plupart des cas, ce n'est pas un comportement souhaitable (par exemple lorsque ce morceau de JSON doit être transmis au navigateur). Une façon de limiter le champ d'exportation est de préciser les champs dans DQL sélectionnez:
$user = Doctrine_Query::create()
->select('u.id, u.name')
->from('User u')
->addWhere('u.id = ?', $id)
->fetchOne();
$user_json = $user->exportTo('json');
user_json de $ aura alors quelque chose comme ceci:
{
"id": 123,
"name": "John Smith",
"password": null,
"deleted": null
}
Il n'expose pas la valeur du champ « mot de passe », mais expose la structure de base de données sous-jacente. Encore une fois, pourrait ne pas être ce que nous voulons. Ce que je fais est de spécifier les champs dans DQL sélectionnez + chercher sous forme de tableau encode puis 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);
Dans ce cas JSON va ressembler à quelque chose comme:
{
"id": 123,
"name": "John Smith"
}
La deuxième réponse est très bonne. [http: // stackoverflow.com/questions/6706485/how-to-encode-doctrine-entités à JSON en symfony-2-0-ajax-application] [1] [1]: http: // stackoverflow .com/questions/6706485/comment-encoder-doctrine-entités-à-json-dans-symfony-2-0-ajax-application – csadan