を挿入Zend FrameworkのDBTABLEは(挿入)レコードを2回
いくつかのために、この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;
}
}
のように見えますblockComment()DBTABLEモデルへの呼び出しを行う
public function reportcommentAction() {
$comment_id = $this->getRequest()->comment_id;
$blockedCommentTable = new Application_Model_DbTable_BlockedComments();
$blockedCommentTable->blockComment($comment_id, $this->user_id);
}
を次のように私は、コントローラのアクションを持っています理由は、私はその出口が必要です。最後に。それがなければ、私は期待どおりに2つのレコードを挿入します。
私はblock_commentsテーブルに3つのフィールド(id、comment_id、ブロックされたフィールド)を持っています。出口ステートメントを使用して、値1、21、1のレコードを期待どおりに取得します。出口ステートメントがなければ、何らかの理由で値が2、0、1の余分なレコードが得られます。
コードの他の部分で同じコードを使用しています(余分な出口はありません)、私はここで何が起こっているのか分かりません。
あなたがxdebugのようなものを持っているかどうか調べるのに十分なはずです。あなたはメソッドが2回呼び出されていないと確信していますか? – JohnP
@ JohnPそれは二度呼ばれているようですが、どうやって見えないのでしょうか。私がxdebugでそれを進めることができるかどうかがわかります。 –
デバッガをオンにしてプロジェクトを実行しましたが、reportcommentActionが2回呼び出されています。最初に正しく呼び出され、Request_Uriは/ us/account/report-comment/21を報告します.21はcomment_idパラメータです。 2回目のRequest_Uriは/us/account/report-comment/default.appcache?v=1を報告します。これは私には何も意味しません。 –