Sto provando a serializzare un documento MongoDB con documenti incorporati all'interno di Symfony 2.1. Sto usando i pacchetti JMSserializer e Mongodb-odm.Sto provando a serializzare documenti mongodb incorporati con JMSSerizial Bundle
Ho le seguenti entità Documenti.
// Blog
namespace App\DocumentBundle\Document;
use Symfony\Component\Validator\Constraints as Assert;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
use JMS\SerializerBundle\Annotation\Type;
/**
* @MongoDB\Document(repositoryClass="App\DocumentBundle\Repository\BlogRepository")
*/
class Blog {
/**
* @MongoDB\Id
*/
protected $id;
/**
* @MongoDB\String
* @Assert\NotBlank()
*/
protected $title;
/**
* @MongoDB\string
* @Assert\NotBlank()
*/
protected $blog;
/**
* @MongoDB\EmbedMany(targetDocument="Tag")
*/
private $tags;
/**
* @MongoDB\Timestamp
*/
protected $created;
/**
* @MongoDB\Timestamp
*/
protected $updated;
}
e
// Tag
namespace App\DocumentBundle\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
/**
* @MongoDB\EmbeddedDocument
*/
class Tag {
/**
* @MongoDB\String
*/
protected $name;
}
tipo Un ArrayCollection viene generato per l'attributo tag, ma il fascio JMSSerializer non piace. Se cambio il tag in @MongoDB \ String e rigenera il documento Blog, , si verifica la serializzazione, ma non con @MongoDB \ EmbedMany (targetDocument = "Tag") impostato.
Devo specificare alcuni degli attributi annotati di JMSSerializer per consentire la serializzazione anche del documento incorporato?
Il codice sembra che vada bene. Stai usando le ultime versioni dei pacchetti? Inoltre cosa vuoi dire con il fatto che a JMSSerializer non piaccia? Qual è il messaggio di errore generato? – kratos
perché non annotare '' $ tag'' con '' @MongoDB \ Collection'' se non stai memorizzando nient'altro che i nomi dei tag? finirai con tag '': ['tag1', 'tag2', 'tag3', 'etc'] '' –
prova a specificare il tipo di 'ArrayCollection' con le annotazioni http://jmsyst.com/libs/ serializzatore/master/riferimento/annotazioni # tipo –