Сейчас я пытаюсь создать формы с помощью Symfony 2 Formbuilder.
У меня есть Таблица «Клиент» с объединением на Таблица «Адрес».
Я хочу форму с полями клиента и некоторые поля адреса.
Все поля должны быть Textfields.
Это то, что я сделал до сих пор, но мне интересно, действительно ли это лучшая практика или есть лучший способ решить эту проблему.
Я создал для таблицы адрес дополнительного типа и добавил его в тип клиента.
Тип клиента используется для 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';
}
Для меня это выглядит как лучшая практика, которая заключается в использовании встроенных форм.
Вы можете найти больше об этом здесь:
http://symfony.com/doc/current/book/forms.html#embedded-forms
Других решений пока нет …