Doctrine orm 在Zend 2表单中编辑相关内容

Doctrine orm 在Zend 2表单中编辑相关内容,doctrine-orm,zend-framework2,Doctrine Orm,Zend Framework2,我遇到无法将相关内容保存在编辑表单上的问题。添加似乎工作正常,但两者都使用相同的字段集和视图文件 似乎我也可以从集合中删除元素,但添加它们似乎失败了(post数据不包含数据) 我的视图文件: 页面字段集: 块字段集: 从控制器添加/编辑: 奇怪的是,如果我将edit.phtml文件更改为仅将整个表单作为集合输出,那么新条目就会添加到集合中 <?php $title = 'Edit Page'; $this->headTitle($title); ?> &

我遇到无法将相关内容保存在编辑表单上的问题。添加似乎工作正常,但两者都使用相同的
字段集和视图文件

似乎我也可以从集合中删除元素,但添加它们似乎失败了(post数据不包含数据)

我的视图文件:

页面字段集:

块字段集:

从控制器添加/编辑:

奇怪的是,如果我将edit.phtml文件更改为仅将整个表单作为集合输出,那么新条目就会添加到集合中

<?php
    $title = 'Edit Page';
    $this->headTitle($title);
?>
<h2><?php echo $this->escapeHtml($title); ?></h2>
<br>

<?php

    $page = $this->form->get('page');
    $form->setAttribute('action', $this->url(
        'admin/page',
        array(
            'action' => 'edit',
            'id'     => $this->id,
        )
    ));
    $this->form->prepare();
    // echo $this->formElement($this->form->get('csrf'));

    $this->form($this->form);

    echo $this->form()->openTag($this->form);
    echo $this->formCollection($this->form);

    echo $this->form()->closeTag();
?>



my edit.phtml中的标记导致表单在添加集合之前关闭,这解释了为什么字段不在post数据中

需要更加小心放置

问题的简化示例

<div>
    <?php echo $this->form()->openTag($this->form); ?>
    <?php echo $this->formCollection($page->get('blocks')); ?>
</div>
<?php echo $this->form()->closeTag(); ?>

这导致浏览器在div元素的早期添加一个close标记

正确的输出将是

<?php echo $this->form()->openTag($this->form); ?>
<div>   
    <?php echo $this->formCollection($page->get('blocks')); ?>
</div>
<?php echo $this->form()->closeTag(); ?>


我们需要您的区块字段集:)区块字段集非常简单,但我已更新了我的答案,链接该文件以供参考。