Я пытаюсь создать пользовательский элемент управления формы для редактирования 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
до сих пор получить нулевое значение ... я не нашел, почему ...
Моя вторая проблема - если я отправлю форму и дам свою сущность, я увижу это:
Я не понимаю, почему новое значение для коллекции добавляется в новый ключ ... Я не понимаю, как это возможно ... (мой сумматор не может получить массив, мой установщик ... почему объединять старое значение с новостями не имеет смысла ... поэтому моя сущность кажется правильной, и только форма имеет проблему: /)