cakephp 2.x删除不起作用

时间:2017-03-21 10:03:53

标签: cakephp cakephp-2.4

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

控制器中的

    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?')) ?>

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

2 个答案:

答案 0 :(得分:0)

  

看起来在CakePHP版本上不推荐使用onlyAllow方法   你正在经历。

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

答案 1 :(得分:0)

答案很简单,就像愚蠢......

TL; DR版本:
表格形式....(不工作)

长版:
我有一个巨大的视图页面来处理,在桌子周围有一种小型包装机,我在调试那些东西时没有认识到..(简单选择表格行 - 用它们做东西) 在这个表中我们必须推送额外的占位符数据,可以在特定时间删除..通过蛋糕postLink删除(生成一个表单)没有工作,你知道..你知道故事的其余部分

抱歉浪费你的时间,但感谢您的快速帮助尝试!并感谢&#34; onlyAllow&#34; tipp:)