我遇到了一个问题,我无法在编辑表单上保存相关内容。添加似乎可以正常工作,但两者都使用相同的Fieldset
并查看文件
看来我也可以从集合中删除元素,但添加它们似乎失败(帖子数据不包含数据)
我的视图文件:
edit.phtml
页面字段集:
pagefieldset.php
块字段集:
blockfieldset.php
来自控制器的添加/编辑:
Controller.php
奇怪的话,如果我将我的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();
?>
我的edit.phtml中的标记导致表格在添加集合之前关闭,这解释了为什么字段在帖子数据中不存在。
需要更加小心我放置<?php echo $this->form()->openTag($this->form); ?>
简化了问题的示例
<div>
<?php echo $this->form()->openTag($this->form); ?>
<?php echo $this->formCollection($page->get('blocks')); ?>
</div>
<?php echo $this->form()->closeTag(); ?>
这导致浏览器在DIV元素中早期添加一个近距离标签
正确的输出将为
<?php echo $this->form()->openTag($this->form); ?>
<div>
<?php echo $this->formCollection($page->get('blocks')); ?>
</div>
<?php echo $this->form()->closeTag(); ?>