Как правильно передать ассоциатиный массив в ChoiceType в Symfony5
Пробую создать select посредством ChoiceType:
$builder->add('category', Type\ChoiceType::class, [
'choices' => ['option1'=> 'value1', 'option2' => 'value2', 'option3' => 'value3'],
'choice_label' => function ($choice, $key, $value) {
return $key;
},
'choice_value' => function ($value) {
if (! is_array($value)) {
return $value;
}
}
]);
Если упускать choice_label, choice_value то будет Notice: Array to string conversion
$builder->add('category', Type\ChoiceType::class, [
'choices' => ['option1'=> 'value1', 'option2' => 'value2', 'option3' => 'value3']
]);
Я начал смотреть через XDebug что прилетает в анонимную функцию.
Оказалось что 3 раза туда прилетают все 3 значение из массива choices (value1, value2, value3), а в 4ый раз (что сбивает с толку) весь массив.
Не совсем понятно зачем это? Почему после перевора всех значений массива прилетает сам массив?
Возможно есть более элегантный способ отображения select из ассоциативного массива чем в примере выше?