Získání id z aktuální akce

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

Zdravím, měl bych dotaz. Jak můžu získat id z aktuální akce? Mám formulář pro komentář a potřeboval bych, aby mi při ukládání do databáze uložil id aktuálního článku.

Zkoušel jsem toto:

public function renderSingle($id = 0) {
    $akce = new Akce($this->connection);
    $comments = new CommentsModel($this->connection);


    if (!($this->template->akce = $akce->fetchSingle($id))) {
        $this->redirect('default'); //článek neexistuje
    }
    $this->template->akce = $akce->fetchSingle($id);
    $this->template->comments = $comments->fetchAll($id);
}

	...

public function commentFormSubmitted(UI\Form $form) {
    $comments = new CommentsModel($this->connection);
    $values = $form->getValues();
    $values['date'] = new DateTime();
    $values['id_akce'] = (int) $this->getParam($id);
    $id = $comments->saveComment($values);
    $this->flashMessage('Komentář byl přidán');
}

Ale hlásí mi to chybu, že nemám definované id. Jak ji tedy zjistit? Děkuji

Editoval Draffix (17. 9. 2012 10:14)

voda
Člen | 561
+
0
-
$this->getParameter('id');
Draffix
Člen | 146
+
0
-

voda napsal(a):

$this->getParameter('id');

Jsem idiot… Díky moc za pomoc

Felix
Nette Core | 1189
+
0
-

Spis bych pouzival

/** @persistent */
public $id;

Presenter to sam nasetuje a ty to muzes pouzivat jak ve formech, akcich, handlerech apod..

mkoubik
Člen | 728
+
0
-

Z důvodu znovupoužitelnosti je mi sympatičtější přístup, kdy má komponenta setter a v akci se jen nastaví:

public function actionSingle($id = 0)
{
	$this['form']->setId($id);
}