首页 > 解决方案 > 使用 FormBuilder symfony 更改表单名称

问题描述

我有一个问题,我知道我可以使用 FromFactoryInterface 来设置表单名称,但是我如何使用 FormBuilder 来做到这一点?这获取类的名称并从中生成自动名称,我如何将其更改为我的指定名称?

表格类型:

    <?php

class ProfileAddPracownikType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder

            ->add('username', null, [
            'label_attr' => array('class' => 'bmd-label-floating'),
            'label' => 'Nazwa użytkownika',
            'mapped' => false,
            'attr' => ['class' => 'form-control']])     
            ->add('imie', null, [
            'label_attr' => array('class' => 'bmd-label-floating'),
            'label' => 'Imię',
            'mapped' => false,
            'data' => $options['imie'],
            'attr' => ['class' => 'form-control']])
            ->add('nazwisko', null, [
            'label_attr' => array('class' => 'bmd-label-floating'),
            'label' => 'Nazwisko',
            'mapped' => false,
            'data' => $options['nazwisko'],
            'attr' => ['class' => 'form-control']])
            ->add('telefon', null, [
            'label_attr' => array('class' => 'bmd-label-floating'),
            'label' => 'Numer telefonu',
            'mapped' => false,
            'data' => $options['telefon'],
            'attr' => ['class' => 'form-control']])
            ->add('email', null, [
            'label_attr' => array('class' => 'bmd-label-floating'),
            'label' => 'Adres e-mail',
            'mapped' => false,
            'data' => $options['email'],
            'attr' => ['class' => 'form-control']]) 
            ->add('password', RepeatedType::class, array(
                    'type' => PasswordType::class,
                    'invalid_message' => 'Hasła muszą być takie same.',
                    'options' => array('attr' => array('class' => 'password-field')),
                    'required' => false,
                    'first_options'  => array('label' => 'Hasło (jeżeli pozostawisz to pola puste hasło nie zmieni się)','attr' => ['class' => 'form-control'],'label_attr' => ['class' => 'bmd-label-floating']),
                    'second_options' => array('label' => 'Powtórz hasło','attr' => ['class' => 'form-control'],'label_attr' => ['class' => 'bmd-label-floating']),
                    'mapped' => false,


                ))          
            ->add('avatar', FileType::class, [
            'label_attr' => array('class' => 'bmd-label-floating'),
            'label' => 'Wgraj lub aktualizuj avatar (jeżeli nie wgrasz pliku pozostanie standardowy obrazek)',
            'mapped' => false,
            'required' => false,
            'data' => $options['avatar'],
            'attr' => ['class' => 'form-control']])         
            ->add('save', SubmitType::class, [
            'label' => 'Zapisz profil',
            'attr' => ['class' => 'btn btn-primary pull-right']])   

        ;
    }

}

控制器内部的表单构建:

$form_profile = $this->createForm(ProfileAddPracownikType::class, $request, array());

标签: symfonytwigformbuilder

解决方案


推荐阅读