0

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

 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 新手,这是我正在尝试的示例。请帮帮我。我可以做些什么来更新专栏?

4

1 回答 1

0

要更新记录,您可以使用保存功能,并$this->request->data提供要更新的重新编码的 id。也$this->data已弃用,并且可能不起作用,您应该使用$this->request->data.

例如,如果您的 $this->request->data 是:

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.');   
        } 
    } 
 }

此外,您应该阅读本文档以了解您应该如何保存(插入、更新)。

于 2013-08-22T07:25:36.783 回答