comment convertir un objet Doctrine en json
Je suis à l'aide de la Doctrine 1.2, comment pourrais-je obtenir l'objet de requête en json /format de tableau?
$user = Doctrine_Query::create()
->select('u.id, u.username, u.firstname, u.lastname')
->from('User u')
->orderby('u.id')
->execute();
source d'informationauteur cc96ai | 2009-12-19
Vous devez vous connecter pour publier un commentaire.
Une solution pourrait être d'utiliser le
toArray()
méthode sur la$user
objet, pour avoir un simple tableau contenant uniquement les données qui vous intéresse, et, ensuite, l'utilisationjson_encode
pour convertir ce tableau PHP d'une chaîne JSON.Quelque chose comme ceci, je suppose :
(Pas testé, mais il ne devrait pas être trop loin de travail...)
De la difficulté avec $dossier->exportTo('json') c'est qu'il va à l'exportation tous les champs de l'enregistrement. Et dans la plupart des cas, il n'est pas souhaitable de comportement (par exemple, lorsque cette pièce de json doit être transmis au navigateur). Une façon de limiter le champ d'application de l'exportation est de spécifier les champs dans DQL sélectionnez:
$user_json alors quelque chose comme ceci:
Afin de ne pas exposer "mot de passe" valeur de champ mais ne exposer sous-jacent structure de base de données. Encore une fois, peut-être pas ce que nous voulons.
Ce que j'ai à faire est de spécifier les champs dans DQL select + fetch array puis json-encode:
Dans ce cas, json ressemblera à quelque chose comme:
Je ne sais pas pourquoi le toArray() va donner à l'autre champ dans la table,
par exemple, il aura le "mot de passe" sur le terrain,
il semble fetchArray() peut me donner le bon champs dans la requête.
toArray()
fetchArray()
JSON :
😉
Maintenant ORM Doctrine Transformations est sorti, il permet de convertir les entités scalaires tableaux et à l'arrière