Comment faire pour convertir un objet en JSON dans symfony2
Je suis en utilisant ceci:
$users = $em->getRepository('UserBundle:User')->getallUsers($search);
$response = new Response(json_encode($users));
$response->headers->set('Content-Type', 'application/json');
return $response;
Les utilisateurs sont multiples entités qui ne sont pas seul résultat.
Mais j'obtiens ceci:
[{},{},{},{},{},{}]
Je veux quelque chose comme:
[ { label: $user.getName(), value: $user.getId() }, ... ]
Comment puis-je le faire?
EDIT: j'ai aussi essayé json_encode($users->toArray())
puis, j'obtiens cette erreur:
Appel à une fonction membre
toArray()
sur un non-objet
La version de symfony utilisez-vous?
symfony 2.1 version la plus récente
symfony 2.1 version la plus récente
OriginalL'auteur user825904 | 2012-08-08
Vous devez vous connecter pour publier un commentaire.
Vous devez disposer d'un moyen de sérialiser vos objets, vous ne pouvez pas attendre de
json_encode
, par magie, suppose que les champs qui sont autorisés à être codé.Un bon bundle je recommande pour cette tâche est JMSSerializerBundle.
Assurez-vous que vous lisez attentivement la documentation avant de l'utiliser!
Résultat final sera probablement ressembler à ceci:
You have requested a non-existent service "serializer".
comment puis-je declrae le service JMSil n'est pas installé correctement si vous obtenez cette erreur.
c'est là, dans jms, fournisseur et sa dernière version
Vous devez vous inscrire le paquet dans votre app/AppKernel.php
Vous pouvez essayer : $serializer = $this->container->get('sérialiseur'); $response = new Response($sérialiseur->serialize($users, 'json'));
OriginalL'auteur Inoryy
Essayer
{{ your_variable|raw }}
Désolé pour la fin de
__toString()
fonction dans une classe, qui renvoiejson_serialize(array(..))
produit.OriginalL'auteur ludriv