2014-11-06 2 views
0

Я хотел бы сделать форму с двумя отдельными объектами, которые не связаны друг с другом.symfony2 Формы с двумя отдельными объектами

Возможно ли это? Должен ли я делать 2 формы на одной странице и с javascript суммировать их все вместе, когда пользователь нажимает кнопку Javascript Submit? Или можно управлять им только с помощью одной формы с Symfony. Если да, то какие советы о том, как это сделать?

+2

попытаться включить вторую форму в первую http://symfony.com/doc/current/book/forms.html#embedded-forms – dmnptr

ответ

2

Я не уверен, что эти решения являются лучшими, но он работает над одним из моих проектов, где у меня была аналогичная проблема.

Вам необходимо создать FormType для каждого из Entity и правильно определить data_class в методе setDefaultOptions. В нашем примере это EventType и UserType.

Для этого вам необходимо создать класс, представляющий обе сущности. Я называю Form Models.

// Acme\DemoBundle\Form\Model\Custom.php 

class Custom 
{ 
    public $event; 
    public $user; 
} 

И теперь просто создайте последний FormType, который склеит эти сущности вместе в одной форме.

// Acme\DemoBundle\Form\CustomType.php 

class CustomType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('Event', new EventType()); 
     $builder->add('User', new UserType()); 
    } 

    public function setDefaultOptions(OptionsResolverInterface $resolver) 
    { 
     $resolver->setDefaults(array(
      'data_class' => 'Acme\DemoBundle\Form\Model\Custom' 
     )); 
    } 

    ... 
}