Php 无法通过Zend_Db_Table_Abstract删除记录->;删除()
我正在尝试使用zend框架模型通过删除操作删除记录。我仍然无法理解为什么它不删除,$model->delete()总是返回零。(0)这是我的删除操作代码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)) {
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');
}