带注释的SF4 JMSSerializer返回空数据

时间:2018-02-24 13:39:34

标签: json jmsserializerbundle symfony4

我在Symfony4项目中使用JMSSerializerBundle和FOSRestBundle,我不使用yml元数据但注释。这是我的实体之一:

<?php 

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Gedmo\SoftDeleteable\Traits\SoftDeleteableEntity;
use Gedmo\Timestampable\Traits\TimestampableEntity;
use JMS\Serializer\Annotation as Serializer;

/**
 * @ORM\Entity(repositoryClass="App\Repository\PageRepository")
 * @ORM\Table(name="page")
 * @Serializer\AccessType("public_method")
 */
class Page

我的FOSRest配置:

fos_rest:
    body_listener: true
    body_converter:
        enabled: true
    service:
        view_handler: tigris_base.view_handler
    view:
        default_engine: twig
        view_response_listener: force
        formats:
            json: true
            pdf: true
            xls: true
            html: false
            xml: true
        templating_formats:
            pdf: false
            xls: false
            json: false
            html: true
            xml: false
    serializer:
        serialize_null: true
    routing_loader:
        default_format: html
        prefix_methods: false
    param_fetcher_listener: true
    allowed_methods_listener: true

我的数据库中有一个实体,但json响应为空。 JMS是否有可能无法序列化我的实体?

1 个答案:

答案 0 :(得分:0)

好的我发现了问题:我的实体是Doctrine \ ORM \ Tools \ Pagination \ Paginator对象的迭代器,我必须调用“getArrayCopy”方法来序列化。