2015-08-18 2 views
0

Я пытаюсь разработать Symfony2 API с помощью FOSRestBundle, но я застрял в ошибке относительно сериализации одного из объектов Doctrine (я использую JMS Serializer для сериализации).JMS Serializer не может сериализовать Entity с интерфейсом

Сообщение об ошибке выглядит следующим образом: «ресурсы не поддерживаются в сериализованном данных»

сериализации работал, пока я не сделал мой объект реализации пользовательского интерфейса:

/** 
* Quotation 
* 
* @ORM\Table(name="quotation") 
* @ORM\Entity 
*/ 
class Quotation implements FileStorageInterface 
{ 
    // content 
} 

и интерфейс:

interface FileStorageInterface 
{ 
    public function getFile(); 

    public function setFile($file); 
} 

Я искал в Интернете, но ничего не смог найти о сериализации объекта ting интерфейс. Поэтому, если у кого-то есть идея о том, как это решить, я с радостью принимаю это.

+0

Я понял, что вы правы: если вы отбрасываете строку 'реализует FileStorageInterface' без каких-либо других манипуляций, все работает нормально? –

+0

Вот именно это! –

ответ

1

Проблема не в том, что вы реализуете только какой-либо интерфейс, а потому, что данные объекта содержат ресурс. Взглянув на рассматриваемый интерфейс, я подозреваю, что setFile() вызывается с ресурсом как значение и сохраняется в свойстве объекта.

+0

Вы полностью правы, я храню поток внутри свойства объекта. Но дело в том, что я пытался исключить это свойство из сериализации/десериализации из-за аннотации @Exclude JMS, но я все еще получаю ошибку. –

Смежные вопросы