symfony – 提交在同一页面上呈现的两个不相关的表单

有没有办法在同一页面上嵌入两个表单(数据在2个不相关的实体上),并提交只有一个提交按钮的表单?

我们的想法是仅在一个控制器Action中验证两个提交的表单.

Entity1和Entity2绝对没有任何共同之处.

                                  |--------------------------
                                  |    Form 1 (Entity 1)    |
                                  |--------------------------
 ---------------                  |
 |  Main Form  |------------------
 ---------------                  |
                                  |--------------------------
                                  |    Form 2 (Entity 2)    |
                                  |--------------------------

有没有人知道这是否可能?

非常感谢.

最佳答案 这是可能的.这样的事情应该有效:

$entity1 = new Entity1();
$entity2 = new Entity2();

$form = $this->createMainForm();

$form->setData(array(
    'entity1' => $entity1,
    'entity2' => $entity2,
));

if ($request->isMethod('POST')) {
    $form->bindRequest($request);
    if ($form->isValid()) {
        // $entity1 and $entity2 should contain the post data
        // and can be persisted or whatever it is you want to do
        // ...

您还可以创建一个包含两个实体的模型,并为其创建表单.使用$mainEntity-> getEntity1();审视封装的实体.

点赞