после обновления до 3.4 я должен использовать array_flip все варианты и значения - можно оставить классическую нотацию - $ key => $ value
classic array = [
1 => 'name of 1'
];
текущий массив вариантов выбора Symfony нужен
choices array = [
'name of 1' => 1
];
Что такое лучшая практика сейчас -
$tags = $this->getDoctrine()->getRepository('Keyword')->getChildren($rootKey);
'choices'=>array_flip($tags),
ошибка Предупреждение: array_flip (): может переворачивать только значения STRING и INTEGER!
поэтому мне нужно создать прямой запрос для получения строки или первого преобразования foreach в строку и обратный массив. :)
я создаю статический помощник, возможно, кому-то понадобится душа.
/**
* Convert Keys to Values and Stringify new Key
* @param $normalArray
* @return array
*/
public static function arrayToChoiceArray($normalArray){
$creazyArray = [];
foreach($normalArray as $key => $value)
$creazyArray[(string)$value] = $key;
return $creazyArray;
}
Это можно использовать
$tags = $this->getDoctrine()->getRepository('Keyword')->getChildren($rootKey);
// Теперь теги [1 => Object, 2 => Object]
$tags = HelperClass::arrayToChoiceArray($tags);
// Теперь тегами являются ['Object as string' => $ key, ....] :)
Да, есть: не обновляйтесь до 3.4. Это было примерно с Sf 2.8.
Где я могу прочитать обсуждение этого уродливого изменения?




с какой версии обновлялись? это было там какое-то время