我似乎无法让我的编辑课工作。我的验证工作正常,当我在点击编辑按钮后使用debug($ this-> data)时,所有显示的数据都很完美,但没有更新表格。
这是我的编辑课程。
public function edit($id = null) {
if($this->request->is('get')) {
$this->request->data = $this->Bookmark->read(null, $id);
} else {
if($this->Bookmark->saveAll($this->request->data)) {
$this->Session->setFlash('The bookmark has been saved!');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('The bookmark could not be saved. Please, try again.');
}
}
}
这是观点。
<?php
echo $this->Form->create('Bookmark', array(
'action' => 'edit',
'inputDefaults' => array(
'class' => 'input-text'
)
));
echo $this->Form->inputs(array(
'legend' => false,
'fieldset' => true,
'Bookmark.title',
'Url.url',
'Bookmark.id' => array('type' => 'hidden'),
'Url.id' => array('type' => 'hidden')
));
echo $this->Form->button('Edit');
echo $this->Form->end();
?>
我已更新了我的编辑课程,但仍未解决我的错误。修复它的是我添加到视图中的两个隐藏字段。
'Bookmark.id' => array('type' => 'hidden'),
'Url.id' => array('type' => 'hidden')
不太确定原因,但我在线查看了其他一些编辑视图,并尝试了这一点,现在可以使用了。
答案 0 :(得分:1)
请尝试按照以下页面操作:http://book.cakephp.org/2.0/en/models/saving-your-data.html
在Cake 2.0.x中你应该使用$this->request->data
,尽管这不太可能是问题所在。您还会看到他们没有手动设置ID,但允许表单执行此操作。
如果您按照本书的建议进行尝试,但仍然无效,请将您的新尝试发布为此问题的修改。
答案 1 :(得分:0)
每次发生这种情况都是因为验证错误。检查验证错误,如此
echo debug( $this->ModelName->invalidFields() );