Předání id do action v presenteru

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

Zdravím,

v podstatě dneska ,jsem začal s nette,
tak jsem to studoval, některé věci chápu.

Ale zatím moc nevím, jak s tím pracovat, pročetl jsem samozřejmě co se dalo ,na webu nette.
Ale praxe bude důležitější,ale mám problém respective, nechápu, jak se předávají do action v presenterech idčka.

Viz např funkce z odkazu zde
Akorát to id, jsem upravil, podle toho jak to mám já.

use Nette\Application\UI\Form;
use Nette\Application\BadRequestException;
use Nette\Application\ForbiddenRequestException;

class RecordPresenter extends BasePresenter
{
    /** @var object */
    private $record;
    protected $id;

    /**
     * Edit record
     */
    public function actionEdit($id)
    {
        // načtení záznamu z databáze
        $this->record = $this->model->records->fetch($id);

        if (!$this->record) { // kontrola existence záznamu
            throw new BadRequestException;

        } elseif ($this->record->userId != $this->user->id) { // kontrola oprávnění
            throw new ForbiddenRequestException;
        }

        $this['recordForm']->setDefaults($this->record); // nastavení výchozích hodnot
    }

Ale to jsou formuláře,

já mám v presenteru, něco takového upravený kód, výše, tzn: je na začátku definováno idčko a tam se předává jako parametr, a já nevím jak se tam předává, jestli výhradně při přímém předání třeba v šabloně, nebo už někde v presenteru,jestli se to nepřidává od někud jinud,snad ne je to tak? Kdybych to nepředal např: při vykreslování v šabloně ?
Prostě a jednoduše mě zajímá, jak se předávají v presenteru idčka, do akcí, či jiných metod.
O metodu nejde.To je jen příklad.

Díky moc za pomoc předem!

Ja
Člen | 260
+
0
-

Snad chapu na co se ptas.

To ID si ta metoda vezme z URL, tzn http://neco.cz/record/edit?id=8

Pokud bys tento odkaz vytvarel dynamicky primo ze sablony (typicky pokud vypisujes ruzne zaznamy a jsou zde odkazy na editaci kazdeho z nich), tak odkaz vytvoris skrze <a n:href=„Record:edit $record->id“>editovat zaznam</a>, Nette ti z toho automaticky vytvori odkaz na onen /record/edit?id=8

snazimse
Člen | 43
+
0
-

U mě se teda,

jedná konkrétně o záznamy z databáze, tady, jsou formuláře.
Takže ,tam si to nemůže vzít z url, pokud to není upravení daného id.

Myslím, při výpisu, tam už musím mít funkce ,která mi ty idčka, vytáhne z databáze, ano?

Díky!

Ja
Člen | 260
+
0
-

Stale nechapu na co se presne ptas, zkus jeste upresnit.

snazimse
Člen | 43
+
0
-

Při výpisu v šabloně v latte, v nějakém bloku, tam už musím zavolat metodu, který mi předá pole idček v iteraci, klasicky.Ale kdybych byl na konkrétním příspěvku, tak to mohu získat z url, chápu to dobře?

Ja
Člen | 260
+
0
-

Nene, v sablone nic neziskavas, tam to predava skrze presenter

<?php
$this->template->rows = $db->findAll();
?>
<?php
<div n:foreach="$rows as $row">
    <a n:href="edit $row->id">editovat zaznam s ID {$row->id}</a>
</div>
?>
snazimse
Člen | 43
+
0
-

Jojo, jakože registruju proměnné v presenteru do dané šablony, chápu správně?

Díky!