CakePHP错误:在此服务器上找不到请求的地址

时间:2014-07-29 13:37:03

标签: php cakephp

我有一个操作从用户获取id并删除与之相关的项目;请求是这样的:

/管理者/ delete_item / 5 但这会发生错误:

  

错误:在此服务器上找不到请求的地址/ managers / delete_item / 5

这是控制器中的delete_item

function delete_item($id = null)
{
    $this->item->id = $id;
    $this->item->status = 0;
    if ($this->data) {
        if ($this->item->save($this->data)) {
            $this->Session->setFlash('Removed', 'default', array('class' => 'success-msg'));
            $this->redirect(array('controller' => 'managers', 'action' => 'discount'));
        } else {
            $this->Session->setFlash('ERR', 'default', array('class' => 'error-msg'));
        }
    } else {
        $this->data = $this->item->read();
    }
}

但是我在我的控制器中有一些类似的动作,这样做就是删除,编辑......而不会发生错误。

请帮忙。

1 个答案:

答案 0 :(得分:1)

您似乎正在寻找此操作的saveField()方法。这只会更新模型中的单个字段。这应该可以解决问题:

function delete_item($id = null) {
    $this->Item->id = $id;

    // Try to update the status
    if ($this->Item->saveField('status', 0)) {
        $this->Session->setFlash('Removed', 'default', array('class' => 'success-msg'));
    } else {
        $this->Session->setFlash('ERR', 'default', array('class' => 'error-msg'));
    }

    // Always redirect, regardless of the outcome (to make sure no view is needed)
    $this->redirect(array('controller' => 'managers', 'action' => 'discount'));
}