2017-01-30 6 views
0

В SYMFONY 3;Выбранный выбор (selected_value) пример

Я создаю форму, в которой куча элементов подформы зависит от выбора, сделанного пользователем.

Так что в моем классе TYPE, чтобы определить форму, у меня есть:

class MyFormType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('customType', ChoiceType::class, array(
      'label'=>'custom type', 
      'choices' => array(
       'choice 1' => 'choice 1', 
       'choice 2' => 'choice 2', 
      ), 
      'multiple' => false, 
     )); 

     // ... 
    } 

    // ... 
} 

В документе он говорит there что:

Это значительно быстрее использовать selectedchoice (selected_value) теста вместо этого при использовании Twig.

Я смотрел selectedchoice(selected_value). Идея состоит в том, чтобы изменить подполя, встроенные в форму, в зависимости от выбора, сделанного пользователем, без отправки нового запроса на сервер.

It describes the use of selectedchoice(selected_value) as this:

Этот тест проверяет, соответствует ли текущий выбор равно selected_value или если текущий выбор в массиве (если selected_value является массивом). 1 <option {% if choice is selectedchoice(value) %} selected="selected"{% endif %} ...>

Я не понимаю, как применять этот пример в том случае, если у меня есть в моем файле TWIG, делающий вид:

{{ form_row(MyFormType.customType) }} 

Как я могу получить выбор подразумеваемого {{ form_row(MyFormType.customType) }} и используйте его с этим:

<option {% if choice is selectedchoice(value) %} selected="selected"{% endif %} ...> 
+0

В чем проблема, которую вы пытаетесь решить? Является ли это предварительным выбором значения в подформе (как выглядит этот подтип?) Или это действительно рендеринг шаблона (если да, то что вы пытаетесь настроить там?)? – xabbuh

+0

Это рендеринг шаблона. Мне нужно сделать что-то на стороне клиента с помощью JS: '