繁体   English   中英

无法通过Zend_Db_Table_Abstract-> delete()删除记录

[英]Unable to delete a record through Zend_Db_Table_Abstract->delete()

我正在尝试使用zend Framework Model通过删除操作删除记录。 我仍然无法弄清楚为什么不删除它,而$ model-> delete()总是返回零。 (0)这是我的删除操作代码。

public function deleteAction()
{
    if ($this->getRequest()->isGet()) {
        $id = $this->getRequest()->getParam('id');
        if (!empty($id)) {
            $id = $this->getRequest()->getPost('id');
            $post = new Application_Model_Post();
            if ($post->delete($id)) {
                $this->_helper->flashMessenger->addMessage('Post deleted.');
            } else {
                $this->_helper->flashMessenger->addMessage('Post note deleted.');
            }
            $this->view->messages = $this->_helper->flashMessenger->getMessages();
        }
        $this->_helper->redirector('index');
    }
}

Application_Model_Post有一个称为delete()的方法

public function delete($id)
    {
        return $this->getMapper()->delete($id);
    }

它引用类Application_Model_PostMapper中的delete方法

  public function delete($id)
    {
        $this->getDbTable()->delete('id ='.(int) $id);

    }
public function getDbTable()
{
    if (null === $this->_dbTable) {
        $this->setDbTable('Application_Model_DbTable_Post');
    }

    return $this->_dbTable;
}
class Application_Model_DbTable_Post extends Zend_Db_Table_Abstract
{
    protected $_name = 'posts';
}

参考: http : //framework.zend.com/apidoc/1.6/Zend_Db/Table/Zend_Db_Table_Abstract.html#delete

更新1

尝试了此解决方案,但无法解决。

$where = $this->getDbTable()->getAdapter()->quoteInto('id = ?', (int)$id);
$this->getDbTable()->delete( $where );

还有这个

$this->getDbTable()->delete(array('id = ?' => (int) $id));

这个电话

$a = $this->getDbTable()->delete('id ='.(int) $id);

应该是这样的

$where = $this->getDbTable()->getAdapter()->quoteInto('id = ?', (int)$id);
$this->getDbTable()->delete( $where );

问题是,为$ id输入了错误的输入。

$id = $this->getRequest()->getParam('id');
            if (!empty($id)) {
                $id = $this->getRequest()->getPost('id');
      }

由于这是我发送的获取请求,因此失败。 $ id = $ this-> getRequest()-> getPost('id')

getPost()应该是getParam()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM