У меня есть действие контроллера следующимZend Framework DbTable вставки() вставка записи дважды
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 записи, а не только одну, как ожидалось.
У меня есть 3 поля в таблице заблокированных_композиций, то есть id, comment_id и заблокировано. С помощью инструкции exit я получаю запись со значениями 1, 21, 1, как и ожидалось. Без инструкции exit я получаю дополнительную запись со значениями 2, 0, 1 по какой-то причине.
У меня такой же код (без лишнего выхода), работающий в других частях моего кода, и я понятия не имею, что здесь происходит.
Должно быть достаточно простым, чтобы изучить, есть ли у вас что-то вроде xdebug. Вы уверены, что метод не вызывается дважды? – JohnP
@JohnP Он уверен, что он называется дважды, но я не вижу, как это сделать. Я посмотрю, смогу ли я пройти через него с помощью xdebug. –
Я запустил проект с отладчиком, и reportcommentAction вызывается дважды. В первый раз его правильно называют, а Request_Uri сообщает/us/account/report-comment/21 где 21 - параметр comment_id. Во второй раз в отчетах Request_Uri /us/account/report-comment/default.appcache?v=1 это ничего не значит для меня. –