Создание форм с объединениями в Symfony 2

Теперь я пытаюсь создать формы с помощью Symfony 2 Formbuilder. У меня есть таблица «Клиент» с объединением таблицы «Адрес».

Мне нужна форма с полями клиента и некоторыми полями адреса.

Все поля должны быть текстовыми.

Это то, что я сделал до сих пор, но мне интересно, действительно ли это лучшая практика или есть лучший способ решить эту проблему.

Я создал для адреса таблицы дополнительный тип и добавил его в клиентский тип.

Тип клиента используется для FormBuilder.

AddressType.php

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('street')
        ->add('company');
}

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setDefaults(array(
        'data_class' => 'Test\UserBundle\Entity\Address',
    ));
}

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

ClientType.php

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('title')
        ->add('Address', new AddressType());
}

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setDefaults(array(
        'data_class' => 'Test\UserBundle\Entity\Client',
    ));
}

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

person JaMa    schedule 08.05.2015    source источник
comment
Я считаю, что это лучшая практика, и мы делаем это как команда. Я надеюсь, что вы сопоставили отношение ORM с каскадным сохранением, чтобы объект адреса сохранялся с отношением клиента при отправке формы.   -  person Jeet    schedule 08.05.2015


Ответы (1)


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

http://symfony.com/doc/current/book/forms.html#embedded-forms

person Moncef    schedule 08.05.2015