我有一个国家选择的注册表。大多数用户来自英国,然后他们背后的方式来自爱尔兰。目前世界其他地方的比例非常小。因此,我想把英国和爱尔兰放在首位,作为首选:
->add('country', 'choice', array(
'choices' => Locale::getDisplayCountries(\Locale::getDefault()),
'preferred_choices' => array('GB', 'IE')
))
这项工作正常,但是"爱尔兰"出现在"英国"在分开的,首选的选项中。
有没有办法设置这些顺序,以便UK出现在列表的首位?
答案 0 :(得分:1)
您检查过this article吗?
你可以通过类比来表达你的形式:
$builder->add('users', 'entity', array(
'class' => 'AcmeHelloBundle:User',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('u')
->orderBy('u.username', 'ASC');
},
));
答案 1 :(得分:0)
答案 2 :(得分:0)
在修复此问题之前,您可以使用一点JavaScript来至少强制使用默认值。使用JQuery的示例:
<script type="text/javascript">
/* Set the default country to US */
$(document).ready(function() {
$("select option").filter(function() {
//may want to use $.trim in here
return $(this).text() == "United States";
}).prop('selected', true);
});
</script>