Symfony2 choice widget ordering of preferred_choices
-
24-06-2021 - |
Question
I have a registration form with a country select. Most of the users are from the UK, and then a way behind them are from Ireland. The rest of the world together are a very small proportion at the moment. Therefore I would like to put UK and Ireland at the top, as preferred choices:
->add('country', 'choice', array(
'choices' => Locale::getDisplayCountries(\Locale::getDefault()),
'preferred_choices' => array('GB', 'IE')
))
This works ok, BUT "Ireland" appears above "United Kingdom" in the separated, preferred options.
Is there any way to set the order of these so that UK appears top of the list?
Solution 2
OTHER TIPS
Have you checked this article?
You could guild your form by analogy to:
$builder->add('users', 'entity', array(
'class' => 'AcmeHelloBundle:User',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('u')
->orderBy('u.username', 'ASC');
},
));
Until this is fixed, you can use a little JavaScript to at least force a default. Example which uses 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>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow