我有一个操作从用户获取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();
}
}
但是我在我的控制器中有一些类似的动作,这样做就是删除,编辑......而不会发生错误。
请帮忙。
答案 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'));
}