【问题标题】:cakephp 2.x delete not workingcakephp 2.x 删除不起作用
【发布时间】:2017-08-12 22:12:51
【问题描述】:

我正在尝试使用以下代码删除记录:

在控制器中:

    public function delete($id = null) {
    if (!$this->Modelname->exists($id)) {
        throw new NotFoundException(__('Modelname ungültig'));
    }

    $this->Modelname->id = $id;

    $this->request->onlyAllow('post', 'delete');
    if ($this->Modelname->delete()) {
        $this->Session->setFlash(__('Modelname wurde gelöscht.'));
        return $this->redirect(array('controller' => 'modelnames', 'action' => 'index'));
    }
    $this->Session->setFlash(__('Modelname wurde nicht gelöscht.'));
}

在视图中:

<?= $this->Form->postLink(__('Delete'), array('controller' => 'modelnames', 'action' => 'delete', $id), array('confirm' => 'Soll dieser Eintrag wirklich gelöscht werden?')) ?>

通常这对我有用,但现在它只是刷新页面而不做任何事情......嗯有什么想法吗?

【问题讨论】:

  • 这类问题对 Stack Overflow 没有用处或不合适。查看What topics can I ask about here?
  • 确保 $id 正确通过 url ..也尝试评论 $this->request->onlyAllow('post', 'delete');行。
  • @drmonkeyninja 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。我不能比我发布问题更缩小问题;(我只是想了解事情是如何工作的——我认为这是一个最小的问题,我可以在未来避免并清楚地了解它为什么不起作用自动取款机 :)
  • @ManoharKhadka 当我注释掉 onlyAllow 并将 postLink 更改为正常链接时,它“有效”(但在我看来有点“脏”?),所以我猜有问题我不明白的 postLink .. :/

标签: cakephp cakephp-2.4


【解决方案1】:

看起来 onlyAllow 方法在 CakePHP 版本上已被弃用 你正在经历。

postLink 运行良好,因为它正在为 post 方法生成等效的 html。

如果您只需要允许特定请求(发布、删除),您可以执行以下任一操作:

if ($this->request->is('post')) { // if this is a post request
   if (!$this->Modelname->exists($id)) {
        throw new NotFoundException(__('Modelname ungültig'));
    }

    $this->Modelname->id = $id;

    if ($this->Modelname->delete()) {
        $this->Session->setFlash(__('Modelname wurde gelöscht.'));
        return $this->redirect(array('controller' => 'modelnames', 'action' => 'index'));
    }
    $this->Session->setFlash(__('Modelname wurde nicht gelöscht.'));
}

【讨论】:

  • onlyAllow() 方法在 CakePHP 2.4 上没有被弃用,它从 2.5 开始。
  • @tarikul05 显然你是对的,但仍然可能是这种情况。或者版本可能会被 OP 更新。
【解决方案2】:

答案很简单。

TL;DR 版本:
表单中的表单......(不工作)

长版:
我有一个巨大的视图页面要处理,在表格周围有一种小的表单包装器,我在调试这些东西时没有识别出来..(简单的选择表格行 - 用它们做东西) 在此表中,我们必须推送额外的占位符数据,这些占位符数据可以在特定时间删除。如您所知,通过 cake postLink 删除(生成表单)不起作用..您知道故事的其余部分

很抱歉浪费您的时间,但感谢您的快速帮助尝试!并感谢“onlyAllow”提示:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 2014-05-22
    相关资源
    最近更新 更多