我正在尝试编辑一个列,而不是更新列,而是添加一个新列

时间:2013-08-20 04:41:28

标签: cakephp-2.3

我的数据库名为cakephp1,其中有一个名为tasks的表。 我在控制器中编写了这段代码:

 function edit($id = null) {
    if (!$id) {
        $this->Session->setFlash('Invalid Task');
        $this->redirect(array('action'=>'index'), null, true);
    }
    if (empty($this->data)) {
        $this->data = $this->Task->find(array('id' => $id));
    } else {
        if ($this->Task->updateAll(debug($this->data))){
            $this->Session->setFlash('The Task has been saved');
            $this->redirect(array('action'=>'index'), null, true);
        } else {
            $this->Session->setFlash('The Task could not be saved.
                                        Please, try again.');   
        } 
    } 
 }

我是cakephp的新手,这是我尝试的例子。请帮帮我。如何更新列?

1 个答案:

答案 0 :(得分:0)

要更新记录,您可以使用保存功能,并在$this->request->data中提供您要更新的重新编码ID。此外,$this->data已弃用,可能无法使用,您应使用$this->request->data

例如,如果您的$ this-> request->数据为:

array('id' => 10, 'title' => 'My new title');

通过以下控制器代码,id = 10的记录标题将被更新。

function edit($id = null) {
    if (!$id) {
        $this->Session->setFlash('Invalid Task');
        $this->redirect(array('action'=>'index'), null, true);
    }
    if (empty($this->request->data)) {
        $this->request->data = $this->Task->find(array('id' => $id));
    } else {
        if ($this->Task->save($this->request->data)){
            $this->Session->setFlash('The Task has been saved');
            $this->redirect(array('action'=>'index'), null, true);
        } else {
            $this->Session->setFlash('The Task could not be saved.
                                        Please, try again.');   
        } 
    } 
 }

此外,您应阅读this documentation以了解应如何保存(插入,更新)。