Пользовательский FormType для EntitiesCollection Error на Transformer - PullRequest
1 голос
/ 10 января 2020

Я пытаюсь создать пользовательский элемент управления формы для редактирования EntityCollection в моем Entity

Мой customFormType выглядит так:

$hiddenInput = $builder->create($builder->getName(), TextType::class);
        $hiddenInput->addModelTransformer(new CallbackTransformer(
            function ($idsString) use ($repository) {
                dump($idsString);
//                    $ids = array_filter(explode(',', $idsString));
//                    $a =  array_map(function($id) use ($repository) {
//                        if ($id !== null && strlen($id) > 0) {
//                            return $repository->find($id);
//                        }
//                    }, $ids);
//                    return $a;

                return [];
            },
            function ($ids) use ($repository) {
                $collection = new ArrayCollection();
                foreach ($ids as $id) {
                    $collection->add($repository->find($id));
                }
                return $collection;
            }
        ));
        $hiddenInput->addViewTransformer(new CallbackTransformer(
            function ($idsArray) {
                if ($idsArray === null) {
                    return '';
                }
                return implode(',', $idsArray);
            },
            function ($idsString) {
                return explode(',', $idsString);
            }
        ));
        $builder->add($hiddenInput);

Моя первая проблема в моем ModelTransformer, $idsString до сих пор получить нулевое значение ... я не нашел, почему ...

Моя вторая проблема - если я отправлю форму и дам свою сущность, я увижу это: dump

Я не понимаю, почему новое значение для коллекции добавляется в новый ключ ... Я не понимаю, как это возможно ... (мой сумматор не может получить массив, мой установщик ... почему объединять старое значение с новостями не имеет смысла ... поэтому моя сущность кажется правильной, и только форма имеет проблему: /)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...