2013-11-13 3 views
0

im попытаться закодировать объект Doctrine как строку JSON, чтобы отправить его как ответ Ajax. Итак, я проверить документ: The Serializer ComponentПроблемы пытаются закодировать сущность на json

Я пытаюсь с этим кодом:

$em = $this->getDoctrine()->getManager(); 
// Get the entities repository 
$sesiones_registradas = $em->getRepository('AuditBundle:AuditSession')->findAll(); 

// Instance the object 
$serializer = new Serializer(array(new JsonEncoder()),array(new GetSetMethodNormalizer())); 

// Convert only an item 
foreach($sesiones_registradas as $sesion){ 
    echo $serializer->normalize($sesion,'json'); 
    break; 
} 
// Stop script 
die(); 

Последний код, терпит неудачу, говоря:

Не удалось нормализовать объект типа AppsManantiales \ AuditBundle \ Entity \ AuditSession, не поддерживается нормализатор.

И если изменения $serializer->normalize($sesion,'json') по $serializer->serialize($sesion, 'json'); Сообщение об ошибке:

Сериализация для формата JSON не поддерживается

Есть идеи?.

ответ

0

Вашей проблема исходит из того, вы перевернутых как normalizers и encoders.

Линия:
$serializer = new Serializer(array(new JsonEncoder()),array(new GetSetMethodNormalizer()));
должны быть:
$serializer = new Serializer(array(new GetSetMethodNormalizer()), array(new JsonEncoder()));

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