Próbuję serializować dokument MongoDB z osadzonymi dokumentami w Symfony 2.1. Używam pakietów JMSserializer i Mongodb-odm.Próbuję serializować osadzone dokumenty mongody za pomocą JMSSerizial Bundle
Mam następujące encje dokumentów.
// 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;
}
i
// Tag
namespace App\DocumentBundle\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
/**
* @MongoDB\EmbeddedDocument
*/
class Tag {
/**
* @MongoDB\String
*/
protected $name;
}
typu obowiązujące ArrayCollection jest generowany dla atrybutu znacznika, ale wiązka JMSSerializer nie podoba. Jeśli zmienię tag na @MongoDB \ String i zregeneruję dokument Blog, , wówczas nastąpi serializacja, ale nie przy ustawieniu @MongoDB \ EmbedMany (targetDocument = "Tag").
Czy muszę podać niektóre z atrybutów JMSSerializer z adnotacjami, czy dokument osadzony ma być również serializowany?
Kod wydaje się w porządku. Czy korzystasz z najnowszych wersji pakietów? Co rozumiesz przez to, że JMSSerializer go nie lubi? Co to jest komunikat o błędzie? – kratos
dlaczego nie dodawać adnotacji '' $ tags'' do '' @MongoDB \ Collection'', jeśli przechowujesz tylko nazwy znaczników? skończysz z '' tags: ['tag1', 'tag2', 'tag3', 'etc'] '' –
spróbuj określić typ 'ArrayCollection' z adnotacjami http://jmsyst.com/libs/ serializer/master/reference/adnotations # type –