我遇到了无法在“编辑”表单中保存相关内容的问题。添加似乎工作得很好,但两者都使用相同的Fieldset
和查看文件
我似乎也可以从集合中删除元素,但添加它们似乎失败(帖子数据不包含数据)
我的观点文件:
Page Fieldset:
Block Fieldset:
从控制器添加/编辑:
奇怪的是,如果我将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();
?>
答案 0 :(得分:0)
我的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(); ?>