onjour Boris,
J’ai énormément de mal à utiliser EntitySerializer::toJson().
C’est vraiment pas simple.
J’ai rajouté les méthodes suivantes dans mes classes Entity:
public function __set($property, $value) {
$this->$property = $value;
}
public function toArray() {
return get_object_vars($this);
}
public function toJson() {
return json_encode($this);
}
Ensuite dans mon controlleur je peux faire :
$view = new JsonModel(array(
‘adresse’ => \Zend\Json\Json::encode($candidat->getAdresse(),true)
));
return $view;
true étant censé me sérialiser les objets liés.
Comme ca marche pas super, j’essaie ta méthode:
$entitySerializer = new \Mix\Doctrine\EntitySerializer($this->getEm());
$view = new JsonModel(array(
‘adresse’ => $entitySerializer->toJson($candidat->getAdresse())
));
return $view;
Ca marche pas non plus, soit j’ai des NULL pour les clés étrangeres soit j’ai meme pas les champs.
De plus j’ai un attribut isInitialized bizarre.
{« adresse »: »{\ »isInitialized\ »:true} »}
Pour info $candidat->getAdresse() est un proxy sur ma classe Entity\Adresse.
En debuggant j'ai ici:
https://github.com/borisguery/bgylibrary/blob/master/library/Bgy/Doctrine/EntitySerializer.php#L80
$data[$key] retourne null
\Zend\debug::dump($metadata->reflFields[$field]);
object(ReflectionProperty)#3530 (2) {
["name"] => string(11) « countryCode »
["class"] => string(14) « Entity\Adresse »
}