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 に答える