我有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))
如何强制它按值按顺序显示列表?
答案 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'
我希望有人会觉得这很有帮助。