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

标签 symfony

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

这个想法是仅在一个 Controller 操作中验证两个提交的表单。

实体 1 实体 2 完全没有共同点。

                                  |--------------------------
                                  |    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();检索封装的实体。

关于symfony - 提交在同一页面上呈现的两个不相关的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18440539/

相关文章:

Symfony 与 docker,编辑麻烦

mysql - Doctrine - 查询构建器使用数组设置参数(嵌套/多个值)

php - Symfony 2 架构更新无法将主键数据类型从整数更改为 Bigint

php - Symfony 4 测试错误

image - 如何获取使用 webpack encore 生成的图像的路径

php - Symfony2 和 Propel 包 : add additional filter to the Propel param converter

symfony - 如何检查 Twig 中是否存在捆绑?

symfony - Drupal 8 和 Twig 获取语言

Symfony HWIOAuthBundle,如何配置 cURL?

Angular 4 上传到 Symfony REST Api