Symfony 4 - Как встраивать детей в формы - PullRequest
0 голосов
/ 19 января 2020

Предположим, у меня есть этот документ, Структуры дерева моделей с дочерними ссылками

/**
 * @ODM\EmbeddedDocument
 */
class Link
{
    /**
     * @var string
     *
     * @ODM\Field(type="string")
     */
    private $title;

    //...

    /**
     * @var Link[]
     *
     * @ODM\EmbedMany(targetDocument=Link::class)
     */
    private $children = [];
}

Я хочу создать для него форму

class LinkType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('title', TextType::class)
            ->add('link', TextType::class)
            ->add('target', TextType::class)
            ->add('children', CollectionType::class, [
                'entry_type' => LinkType::class,
                'allow_add' => true,
                'allow_delete' => true,
            ])
        ;
    }
}

I получить ошибку 500 с пустым сообщением (ничего в журнале). Я предполагаю, что поскольку я встраиваю одну и ту же форму, она создает бесконечное число l oop ...

Вы когда-нибудь сталкивались с этой проблемой раньше? Если да, нашли ли вы решение?

РЕДАКТИРОВАТЬ 1: Подробнее

Это API, использующий FOSRest Bundle. Проблема с обновлением. Вот пример полезной нагрузки:

{
    "title": "Header menu",
    "links": [
        {
            "title": "Home",
            "link": "/",
            "children": []
        },
        {
            "title": "About",
            "link": "/about"
            "children": [
                {
                    "title": "Presentation of WOOHP",
                    "link": "/woohp",
                    "children": []
                },
                {
                    "title": "The team",
                    "link": "/team"
                    "children": [
                        {
                            "title": "The managers",
                            "link": "/managers",
                            "children": []
                        },
                        {
                            "title": "The spies",
                            "link": "/spies",
                            "children": []
                        },
                        {
                            "title": "The scientists",
                            "link": "/scientists",
                            "children": []
                        }
                    ]
                },
                {
                    "title": "Our values",
                    "link": "/valus",
                    "children": []
                }
            ]
        },
        {
            "title": "Missions",
            "link": "/missions",
            "children": []
        },
        {
            "title": "Contact",
            "link": "https://www.example.com/contact",
            "children": []
        }
    ] 

 }

РЕДАКТИРОВАТЬ 2: Больше ошибок

Благодаря @jakumi, теперь у меня отображаются ошибки. Это ошибка ограничения памяти.

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /var/www/api/vendor/symfony/event-dispatcher/EventDispatcher.php on line 197

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32768 bytes) in /var/www/api/vendor/symfony/debug/Exception/OutOfMemoryException.php on line 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...