Обнаружена круговая ссылка при использовании fos: elastica: populate

До сих пор я использовал аннотацию групп для сериализации и заполнения моего индекса эластичного поиска, и он работал нормально, поскольку использовал только поля в группе «elastica» и только для сущностей, перечисленных в моем fos_elastica.yml. Таким образом, я мог легко контролировать, какое поле было отправлено в моем индексе, и избегать циклических ссылок.

Теперь проблема в том, что мне нужно установить некоторые отношения как «вложенные» в моем индексе, и я не мог найти, как это сделать с аннотациями групп, поэтому я решил настроить свои типы в моем fos_elastica.yml ...

Но теперь сериализатор хочет сериализовать поля, о которых я его не прошу (или, по крайней мере, я так не думаю ...)

fos_elastica:
serializer: ~
clients:
     default:
         url: '%elasticsearch.url%'
         logger: true
indexes:
    alternance:
        finder: ~
        use_alias: true
        index_name: '%elastic_index_name%'
        types:
            offer:
                mappings:
                    id: { type: integer }
                    name: ~
                    slug: ~
                    metaTitle: ~
                    metaDescription: ~
                    metaKeywords: ~
                    content: ~
                    duration: ~
                    startat: ~
                    keywords: ~
                    email: ~
                    wage: ~
                    profile: ~
                    premiumFlag: ~
                    idValid: { type: integer }
                    updated: ~
                    created: ~
                    levels:
                        type: nested
                        properties:
                            id: { type: integer }
                            name: ~
                            slug: ~
                            metaTitle: ~
                            metaDescription: ~
                            metaKeywords: ~
                            content: ~
                    diplomas:
                        type: nested
                        properties:
                            id: { type: integer }
                            name: ~
                            slug: ~
                            metaTitle: ~
                            metaDescription: ~
                            metaKeywords: ~
                            content: ~
                    company:
                        type: nested
                        properties:
                            id: { type: integer }
                            name: ~
                            slug: ~
                            metaTitle: ~
                            metaDescription: ~
                            metaKeywords: ~
                            content: ~
                    domains:
                        type: nested
                        properties:
                            id: { type: integer }
                            name: ~
                            slug: ~
                            metaTitle: ~
                            metaDescription: ~
                            metaKeywords: ~
                            content: ~
                    contract:
                        type: nested
                        properties:
                            id: { type: integer }
                            name: ~
                            slug: ~
                            metaTitle: ~
                            metaDescription: ~
                            metaKeywords: ~
                            content: ~
                    city:
                        type: nested
                        properties:
                            id: { type: integer }
                            name: ~
                            slug: ~
                            metaTitle: ~
                            metaDescription: ~
                            metaKeywords: ~
                            content: ~
                            county:
                                type: nested
                                properties:
                                    id: { type: integer }
                                    name: ~
                                    slug: ~
                                    metaTitle: ~
                                    metaDescription: ~
                                    metaKeywords: ~
                                    content: ~
                                    region:
                                        type: nested
                                        properties:
                                            id: { type: integer }
                                            name: ~
                                            slug: ~
                                            metaTitle: ~
                                            metaDescription: ~
                                            metaKeywords: ~
                                            content: ~
                persistence:
                    driver: orm
                    model: ModelBundle\Entity\Offer
                    provider: ~

Когда я запускаю bin \ console fos: elastica: populate, я получаю следующую ошибку: при сериализации объекта класса «Proxies__CG __ \ ModelBundle \ Entity \ County» была обнаружена циклическая ссылка.

Итак, я предполагаю, что он пытается сериализовать County, и обнаруживает, что существует связь OneToMany "Cities", но в моем файле конфигурации я не прошу его сериализовать поле "Cities" ??

Могу ли я заставить сериализатор игнорировать / не сериализовать циклические ссылки? Все, что я могу найти относительно обработки циклических ссылок, находится не в конфигурации entity classes / yml :(

Вот конфигурация сущностей:

//ПРЕДЛОЖЕНИЕ

/**
     * @ORM\ManyToOne(targetEntity="City", inversedBy="offers")
     * @ORM\JoinColumn(name="city_id", referencedColumnName="id", nullable=false)
     */
    private $city;

// ГОРОД

/**
 * @ORM\ManyToOne(targetEntity="ModelBundle\Entity\County", inversedBy="cities")
 * @ORM\JoinColumn(name="county_id", referencedColumnName="id", nullable=false)
 */
private $county;

/**
 * @ORM\OneToMany(targetEntity="ModelBundle\Entity\Offer", cascade={"remove"}, mappedBy="city", fetch="EAGER")
 * @ORM\JoinColumn(onDelete="CASCADE", nullable=true)
 */
private $offers;

// ОКРУГ

/**
 * @ORM\OneToMany(targetEntity="ModelBundle\Entity\City", cascade={"remove"}, mappedBy="county", fetch="EAGER")
 * @ORM\JoinColumn(onDelete="CASCADE", nullable=true)
 */
private $cities;

person Jb R.    schedule 11.09.2017    source источник


Ответы (1)


Видимо просто удаляя

serializer: ~

l.2 исправил проблему: D

person Jb R.    schedule 11.09.2017