Получение данных класса узла из возвращенных коллекций PHPCR в Symfony CMF

Следуя официальным руководствам по настройке PHPCR для использования в качестве диспетчера узлов для CMF Symfony, рекомендуется получить все классы узлов аналогичного типа следующим образом:

$dm = $this->get('doctrine_phpcr')->getManager();
$posts = $dm->getRepository('AcmeBasicCmsBundle:Post')->findAll();

Это дает мне объект ArrayCollection, который я затем могу передать в шаблон веточки и выполнить итерацию, чтобы получить значения, такие как post.title и post.content соответственно. Однако я хочу иметь возможность сериализации этого объекта для передачи через API. Очевидно, что этот возвращенный объект содержит много посторонней информации, относящейся к диспетчеру узлов и связанным маршрутам и т. Д., И его сериализация дает массивные громоздкие массивы, из которых кажется невозможным извлечь фактические данные класса.

Официальная документация ( http://doctrine-orm.readthedocs.org/projects/doctrine-phpcr-odm/en/latest/reference/working-with-objects.html) по работе с объектами показывает, как извлекать, изменять и сохраните их в базе данных, что позволит вам вызывать функции получения / установки в вашем классе. Я мог бы использовать эти методы для создания новых объектов из этой коллекции, но вытащить массив объектов из базы данных только для того, чтобы пройти через них и воссоздать из методов до их сериализации, кажется нелепым.

$dm = $this->get('doctrine_phpcr')->getManager();
$posts = $dm->getRepository('FrontendCmsBundle:Post')->findAll();

$apiPosts = array();
foreach ($posts as $post) {
    $apiPosts[] = array (
       'title' => $post->getTitle(),
       'content' => $post->getContent(),
    );
}

return $api->serialize($apiPosts, 'json');

Я прошел через официальную ссылку на этот объект и попытался использовать все упомянутые функции, и ни одна из них не кажется подходящей - http://www.doctrine-project.org/api/common/2.1/class-Doctrine.Common.Collections.ArrayCollection.html.

Может ли кто-нибудь помочь мне получить массив данных только моего класса из phpcr? заранее спасибо

0 ответов

Другие вопросы по тегам