Symfony 3.4选择需要array_flip

时间:2018-03-28 14:54:58

标签: symfony symfony-forms

更新到3.4后我必须使用array_flip所有选项和值 - 可以使用经典表示法 - $ key => $值

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 =>对象,2 =>对象]

 $tags = HelperClass::arrayToChoiceArray($tags);

//现在代码是['对象为字符串' => $ key,....]:)

0 个答案:

没有答案