我有一个控制器动作如下
public function reportcommentAction() {
$comment_id = $this->getRequest()->comment_id;
$blockedCommentTable = new Application_Model_DbTable_BlockedComments();
$blockedCommentTable->blockComment($comment_id, $this->user_id);
}
调用blockComment()dbTable模型,看起来像这样
class Application_Model_DbTable_BlockedComments extends Zend_Db_Table_Abstract {
protected $_name = 'blocked_comments';
public function blockComment($comment_id, $blocked_by) {
if (!empty($comment_id) && !empty($blocked_by)) {
$data = array(
'comment_id' => $comment_id,
'blocked_by' => $blocked_by
);
$this->insert($data);
exit;
}
}
出于某种原因,我需要退出;在末尾。如果没有它,我会插入2条记录而不是预期的记录。
我在blocked_comments表中有3个字段,即id,comment_id和阻止。使用exit语句,我得到一个值为1,21,1的记录,如预期的那样。如果没有exit语句,我会因某种原因获得值为2,0,1的额外记录。
我有相同的代码(没有多余的退出)在我的代码的其他部分工作,我不知道这里发生了什么。
答案 0 :(得分:2)
The second time round the Request_Uri reports /us/account/report-comment/default.appcache?v=1
删除主HTML标记中的manifest
属性(位于顶部)以删除第二个调用。 Zend的应用程序路由似乎正在开始,而不是提供静态文件。这可能是因为该文件不存在或可能存在于不同的路径上。
答案 1 :(得分:0)
我有类似的问题。 ->insert
被调用两次的原因是:
public function saveAction()
{ ...
$result = $this->_bookModel->saveBook($data);
if ($result) {
$this->view->form = $form->reset();
$this->_helper->viewRenderer('index');
}
我已经取代了
$this->_helper->viewRenderer('index');
带
return $this->_helper->redirector('index');
它完美无缺。