Symfony形式乡村城市

时间:2015-08-04 14:19:19

标签: php forms symfony doctrine-orm

我有symfony项目。我有实体开发人员和字段国家和城市。在FORM中我希望被创建 - 当选择国家时,它出现在城市(这个国家的城市)并且如果开发者有ip - 可以通过ip确定。我怎么做,也许是捆绑或lib?帮助

class Developer extends CustomUser
{
/**
 * @var string
 *
 * @ORM\Column(name="email", type="string", length=255,  unique=false, nullable=true)
 * @Assert\Length(min=3, max=255)
 */
protected $email;
    /**
 * @var string
 *
 * @ORM\Column(name="country", type="string", length=255, nullable=true)
 */
private $country;
    /**
 * @var string
 *
 * @ORM\Column(name="location", type="string", length=255, nullable=true)
 */
private $location;

和表格

class DeveloperPersonalInformationType extends AbstractType
{
/**
 * @param FormBuilderInterface $builder
 * @param array                $options
 */
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('firstname', null, array('label' => 'First Name', 'max_length' => 255, 'required' => false))
        ->add('lastname', null, array('label' => 'Last Name', 'max_length' => 255, 'required' => false))
        ->add('email', null, array('label' => 'Email', 'max_length' => 255, 'required' => false))
        ->add('country', 'choice', array('label' => 'Country', 'max_length' => 255, 'required' => false,
            'choices'   => $this->getCountries()))

        ->add('location', 'cities', array('label' => 'Location','required' => false, 'mapped' => true, 'attr' => array('placeholder' => 'Select Location', 'class'=>'cities') ))

1 个答案:

答案 0 :(得分:0)

您需要提供更多信息。县域是否映​​射到国家/地区实体?

有很多方法可以做到这一点,研究更多,然后回来一个你正在尝试的方法和你使用过的代码。

要回答你的问题,我会创建一个包含选择列表的表单,隐藏除了第一个然后onChange使用查询以外的所有查询以向后端发送ajax请求以获取数据,填充下一个选择列表然后取消隐藏/显示它们。