У меня есть вопрос, я знаю, что могу использовать 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());