Обновление штата, раскрывающейся базы города в выбранной стране Symfony

У меня есть это освобождение.
Один ко многим между страной к государству.
Один ко многим между штатами в город.

В бланке занятости мне нужно показать эти выпадающие списки, я хочу, чтобы при выборе страны отображались только ее освобожденные штаты. Теперь это показывает все.

вот мой код формы

<?php

namespace PNC\UsersBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\FormBuilder;
use Doctrine\ORM\EntityRepository;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Form\Event\DataEvent;

class EmploymentsType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder ->add('designation', 'text', array(
'required' => true,
'label' => 'Designation ',
'attr' => array(
'required'    => true,
'placeholder' => 'Designation Name',
'invalid_message' => 'You entered an invalid designation',
'class' => 'form-control'
)))
->add('organization', 'text', array(
'label' => 'Organization',
'attr' => array(
'required'    => true,
'placeholder' => 'Organization Name',
'invalid_message' => 'You entered an invalid organization',
'class' => 'form-control'
)))
->add('country', 'entity', array(
'label' => ucfirst('country'),
'class' => 'PNCGeneralBundle:Country',
'property'=>'name',
//'property_path'=>false, //Country is not directly related to City
'attr'=> array(
'required'    => true,
'invalid_message' => 'You selected an invalid Industry',
'class' => 'form-control'
)
))
->add('state', 'entity', array(
'label' => ucfirst('state'),
'class' => 'PNC\GeneralBundle\Entity\State',
'attr'=> array(
'required'    => true,
'invalid_message' => 'You selected an invalid Industry',
'class' => 'form-control'
)
))
->add('city', 'entity', array(
'label' => ucfirst('city'),
'class' => 'PNC\GeneralBundle\Entity\City',
'attr'=> array(
'required'    => true,
'invalid_message' => 'You selected an invalid Industry',
'class' => 'form-control'
)
))
->add('save', 'submit', array(
'attr' => array(
'label' => ucfirst('save'),
'class' => 'btn btn-success'
)
));
}

public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'PNC\UsersBundle\Entity\Employments',
));
}

public function getName()
{
return 'pncusers_bundle_employments_type';
}
}

0

Решение

Я бы сказал, что самым простым способом было бы показать / скрыть параметры с помощью JavaScript. Сделайте дамп стран, штатов и городов как JSON и используйте его как источник для принятия решений в JS.

2

Другие решения

Других решений пока нет …