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

Php 无法通过Zend_Db_Table_Abstract删除记录->;删除(),php,zend-framework,zend-form,zend-db,zend-db-table,Php,Zend Framework,Zend Form,Zend Db,Zend Db Table,我正在尝试使用zend框架模型通过删除操作删除记录。我仍然无法理解为什么它不删除,$model->delete()总是返回零。(0)这是我的删除操作代码 public function deleteAction() { if ($this->getRequest()->isGet()) { $id = $this->getRequest()->getParam('id'); if (!empty($id)) {

我正在尝试使用zend框架模型通过删除操作删除记录。我仍然无法理解为什么它不删除,$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');
    }
}
应用程序\u模型\u Post有一个名为delete()的方法

它指的是类应用程序\u模型\u 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';
}
参考:

更新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');
      }
由于我正在发送get请求,因此失败$id=$this->getRequest()->getPost('id'))


getPost()应该是getParam()

它会删除表中的所有记录。我只需要删除属于给定ID的记录。根据文档,它说两种方式都可以。数组或字符串。好的,让我检查一下我的系统…我看不到错误,好的。同时,也检查一下这个答案,以获得一些基本的想法。请在找到正确的方法后更新答案。不,现在它不会删除任何内容。我更新为您的更改$this->getDbTable()->delete(数组('id=?'=>(int)$id));始终转到“其他条件”并打印“未删除帖子”
$id = $this->getRequest()->getParam('id');
            if (!empty($id)) {
                $id = $this->getRequest()->getPost('id');
      }