Symfony 4 пользовательский тип формы - PullRequest
1 голос
/ 18 апреля 2019

Я пытаюсь использовать форму нестандартного типа, но не могу ее отобразить (вообще никаких ошибок, просто пустой выпадающий список).Пользовательский тип:

class RuleType extends AbstractType
{
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults([
           'choices' => [
               '1' => 'Regle',
               '2' => 'Scenario'
           ],
        ]);
    }



    public function getParent()
    {
        return ChoiceType::class;
    }


}   

и используется в:

  public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('name',        TextType::class, array('attr' => array('class' => 'long')))
        ->add('ruleType',    RuleType::class)
        ->add('isActive',    CheckboxType::class, array('required' => false))
        ->add('iconName',    Image::class, array('required' => false))
        ->add('action',        EntityType::class, array('class' => 'App\Entity\Upv6\Actions', 'choice_label' => 'internalName'))
        ->add('rule',        TextareaType::class, array('required' => false, 'attr' => array('class' => 'editor')))
        ->add('comment',    TextareaType::class, array('required' => false, 'attr' => array('class' => 'comments')))
        ;
}

и шаблон:

{{ form_start(form, {'attr': {'id': 'monForm'},'action': path('iot6_SmartItBundle_RulesManager_Add') }) }}
    {{ form_errors(form) }}
    <table>
        <tr>
            <td>{{ form_label(form.name, 'msg.name'|trans) }}</td>
            <td>{{ form_widget(form.name) }}</td>
            <td>{{ form_errors(form.name) }}</td>
        </tr>
        <tr>

            <td>{{ form_label(form.ruleType, 'msg.type'|trans) }}</td>
            <td>{{ form_widget(form.ruleType) }}</td>
            <td>{{ form_errors(form.ruleType) }}</td>
        </tr>

1 Ответ

1 голос
/ 18 апреля 2019
public function setDefaultOptions(OptionsResolverInterface $resolver)

должно быть

public function configureOptions(OptionsResolver $resolver)

Полагаю, вы смотрите какой-то пример кода до 2.7, так как setDefaultOptions был устарел тогда.Вы можете найти последние документы для пользовательских типов форм здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...