Skip to content

Instantly share code, notes, and snippets.

@mylk
Last active April 30, 2021 10:58
Show Gist options
  • Save mylk/42f0b5aa5cf13440a75afd56805aeb4c to your computer and use it in GitHub Desktop.
Save mylk/42f0b5aa5cf13440a75afd56805aeb4c to your computer and use it in GitHub Desktop.
A Symfony Forms choice type of the US states
<?php
/*
* Installation:
* =============
* # services.yml
* services:
* # ...
* acme.form.states:
* class: Acme\AcmeBundle\Form\Extension\StatesType
* tags:
* - { name: form.type, alias: acme.form.states }
*
* Usage:
* ======
* $builder
* ->add("state", "acme.form.states")
* // ...
*/
namespace Acme\AcmeBundle\Form\Extension;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\OptionsResolver\OptionsResolver;
class StatesType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
"choices" => array(
"Alabama" => "AL",
"Alaska" => "AK",
"Arizona" => "AZ",
"Arkansas" => "AR",
"California" => "CA",
"Colorado" => "CO",
"Connecticut" => "CT",
"Delaware" => "DE",
"Florida" => "FL",
"Georgia" => "GA",
"Hawaii" => "HI",
"Idaho"=> "ID",
"Illinois" => "IL",
"Indiana" => "IN",
"Iowa" => "IA",
"Kansas" => "KS",
"Kentucky" => "KY",
"Louisiana" => "LA",
"Maine" => "ME",
"Maryland" => "MD",
"Massachusetts" => "MA",
"Michigan" => "MI",
"Minnesota" => "MN",
"Mississippi" => "MS",
"Missouri" => "MO",
"Montana" => "MT",
"Nebraska" => "NE",
"Nevada" => "NV",
"New Hampshire" => "NH",
"New Jersey" => "NJ",
"New Mexico" => "NM",
"New York" => "NY",
"North Carolina" => "NC",
"North Dakota" => "ND",
"Ohio" => "OH",
"Oklahoma" => "OK",
"Oregon" => "OR",
"Pennsylvania" => "PA",
"Rhode Island" => "RI",
"South Carolina" => "SC",
"South Dakota" => "SD",
"Tennessee" => "TN",
"Texas" => "TX",
"Utah" => "UT",
"Vermont" => "VT",
"Virginia" => "VA",
"Washington" => "WA",
"West Virginia" => "WV",
"Wisconsin" => "WI",
"Wyoming" => "WY"
),
"choices_as_values" => true
));
}
/**
* {@inheritdoc}
*/
public function getParent()
{
return "choice";
}
/**
* {@inheritdoc}
*/
public function getName()
{
return "acme.form.states";
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment