CakePHP SaveAll不工作

时间:2011-12-22 06:11:57

标签: cakephp cakephp-2.0

我似乎无法让我的编辑课工作。我的验证工作正常,当我在点击编辑按钮后使用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')

不太确定原因,但我在线查看了其他一些编辑视图,并尝试了这一点,现在可以使用了。

2 个答案:

答案 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() );