Я хочу сохранить массив из 9 флажков, каждый из которых связан с одним и тем же объектом, в моей базе данных.
Пример требуемых данных
['0','0','1','1','1','1','1','1','1'] #Array[]|length = 9
['1','0','0','0','0','0','0','0','0']
['0','1','0','0','0','0','0','0','0']
['1','1','0','0','0','0','0','0','0']
['2','0','0','0','0','0','0','0','0']
['0','2','0','0','0','0','0','0','0']
['0','0','2','0','0','0','0','0','0']
['0','0','2','1','0','0','0','0','0']
['1','0','2','0','0','0','0','0','0']
Вот что я получил для этих соответствующих примеров
['0','0']
['1','0']
['0','1']
['1','1']
['2','0']
['0','0']
['0','2']
['0','0','2'] #something i cant understand
['1','0','2']
Я использую базовый ChoiceType
$builder
->add('recipe', ChoiceType::class, [
'choices' => [],
'multiple' => true,
'expanded' => true,
'label' => 'Craft',
])
;
$builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) {
$craft = $event->getData();
$recipe = $craft['recipe'];
dump($recipe); # good at this point
});
$builder->addEventListener(FormEvents::SUBMIT, function (FormEvent $event) {
$craft = $event->getData();
$recipe = $craft['recipe'];
dump($recipe); # bad array...
});
Согласно документации Symfony, между этими двумя событиями данные нормализуются. ( reference )
Я бы хотел настроить шаг нормализации, соответствующий моему FormType, и единственное, что я обнаружил через несколько часов, - это файл, расположенный в symfony / form / ChoiceList / ArrayChoiceList.php, который можетбыть моей проблемой( ArrayChoiceList на github )