1

我有一个带有国家选择的注册表单。大多数用户来自英国,其次是爱尔兰。目前,世界其他地区加起来只占很小的比例。因此,我想将英国和爱尔兰放在首位,作为首选:

->add('country', 'choice', array(
    'choices' => Locale::getDisplayCountries(\Locale::getDefault()),
    'preferred_choices' => array('GB', 'IE')
))

这工作正常,但“爱尔兰”出现在“英国”上方的单独的首选选项中。

有没有办法设置这些顺序,以便英国出现在列表的顶部?

4

3 回答 3

2

你检查过这篇文章吗?

你可以通过类比来引导你的表格:

$builder->add('users', 'entity', array(
    'class' => 'AcmeHelloBundle:User',
    'query_builder' => function(EntityRepository $er) {
        return $er->createQueryBuilder('u')
            ->orderBy('u.username', 'ASC');
    },
));
于 2012-08-01T09:14:06.003 回答
0

创建的问题:

https://github.com/symfony/symfony/issues/5136

希望会在 sf 2.2 中看到

于 2012-09-06T10:01:48.193 回答
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>
于 2013-04-13T00:08:58.730 回答