Symfony2 JsonResponse - 按值排序

时间:2014-12-14 07:24:45

标签: json symfony

我有2个下拉列表,第二个内容取决于第一个。我通过生成一个数组并将其传递给JsonResponse

来生成它的内容
 new JsonResponse($response_object);

我的$ response_object是根据数据库中的列表创建的,其中数组键与实体ID匹配:

   6 => 'A Item',
   3 => 'B Item',
   1 => 'C Item',
   10 => 'D Item'

问题是,即使我将该列表传递给显示的JsonResponse(按值排序),它也会在按键排序的下拉列表中显示,而不是值。

这就是我构建response_object的方式

  foreach ($entities as $entity) {
      $response_object->entities[$entity->getId()] = $entity->getName()
  }

  $response = new JsonResponse($response_object);
  return $response;

Twig是一个简单的小部件

  {{ form_widget(select_current_form.entity) }

此特定字段的表单构建器中的配置是

  ->add('entity', 'choice', array('required' => false, 'choices' => $entity_choices))

如何强制它按值按顺序显示列表?

2 个答案:

答案 0 :(得分:0)

您可以尝试在数组中使用字符串作为键。请记住,您可以使用natsort轻松对数组进行排序。

答案 1 :(得分:0)

如果传递一个对象,您将能够保留其排序,而不是将数组传递给 JsonResponse

而不是这个,

SELECT p.article_id, a.description 
FROM Articles a 
JOIN Packets p 
ON p.article_id=a.id

安排你的函数来带来这样的对象数组。 (在PDO中,您可以使用 \ PDO :: FETCH_OBJ 获取模式)

6 => 'A Item',
3 => 'B Item',
1 => 'C Item',
10 => 'D Item'

我希望有人会觉得这很有帮助。