Action v prezenteru se provede dvakrát

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
mr.mac
Člen | 87
+
0
-

Předem se omlouvám za „laický“ dotaz. Dostal jsem se po čase zase k práci na aplikaci, kterou jsem před 2 lety vytvořil za pomocí Nette 2.0b (2.0 stable se mi zatím nepodařilo rozchodit – kód aplikace je už dost velký). Mám problém s duplicitami v databázi, které se mi vytváří při spouštění akce „Kopie záznamu“.

Akce v prezenteru je tato:

public function actionCopyNabidka($id) {
	$instance = new Nabidka;
	$result = $instance->copyNabidka($id, $this->user->id);
	if(!$result or $result==0){
		$this->flashMessage('Zkopírování nabídky bylo neúspěšné.','warning');
		$this->redirect('detail', $id);
	} else {
		$this->flashMessage("Nabídka byla zkopírována pod novým číslem $result.");
		$this->redirect('detail', $result);
	}
}

V modelu mám tuto metodu (spuštění uložené procedury – vytváří se kopie dat v několika provázaných tabulkách – DB je MS SQL, to ale není podstatné, procedura funguje dobře):

public function copyNabidka($id, $id_user){
	if($id>0 && $id_user>0){
		$res = $this->CONN->query("DECLARE @id_nab int;
					EXECUTE copyOffer $id, $id_user, @id_nab OUTPUT;
					SELECT @id_nab [nid]")->fetch();
		return $res->nid;
	} else {
		return false;
	}
}

Výsledek je, že se uloží 2 kopie aktuálního záznamu v databázi (dle $id). V prezenteru je v akci přesměrování (dle výsledku z uložené procedury) asi tak jak má být, nebo ne? Díky moc za radu.

EDIT: Žádné nápady? To mě mrzí, myslel jsem, že někde mám fatální chybu, na první pohled jasnou.

Editoval mr.mac (25. 11. 2013 17:25)

honos
Člen | 109
+
0
-

Zkus se podivat do debug baru jestli se ti neprovadi dva dotazy jinak k tomuto take slouzi requst panel – abys vedel ke kolika presnerovanim doslo a kam..