Une entité est donnée avec ces propriétés:JMSSerializer, sérialisation des valeurs d'entité paire à (clé, valeur) dans l'objet JSON
class Translation
{
/**
* @var string
* @SerializedName("language_code")
*/
private $lang;
/**
* @var string
* @SerializedName("text")
*/
private $translation;
/**
* @var int
*/
private $language_id;
}
Le contrôleur ressemble à ceci:
class DefaultController extends {
public function indexAction(Request $request) {
$translation = $this->getDoctrine()->getRepository('AppBundle:Translation')->findAll();
$serializer = SerializerBuilder::create()->build();
$translationJson = $serializer->serialize($translation, 'json');
return new Response($translationJson);
}
}
Mon front-end attend un format JSON comme ceci:
{
"en" : "yes",
"de" : "ja",
"it" : "si"
}
Mon projet est beaucoup plus complexe, mais cela est une description minified du problème. Ma seule préoccupation est comment puis-je formater les propriétés dans une paire clé-valeur dans un objet json. Puis-je y parvenir en utilisant les annotations?
Si non, alors comment?
EDIT
Entité de traduction a une relation ManyToOne avec les langues Entité:
class Languages
{
/**
* @var int
*/
private $id;
/**
* @var int
* @ORM\OneToMany(targetEntity="Translation", mappedBy="translation_id", cascade={"persist"}, orphanRemoval=true)
*/
private $translations;
}
bonne prise! Acceptez votre réponse pour que la question soit aussi résolue – Matteo