Routování – Jak na proměnné v URL

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

Zdravím,
možná jsem blbej, nebo nevím. Ale pořád nemůžu pochopit to routování.
Jak můžu vytáhnout z adresy proměnné. Podle tutoriálů se mi daří vytáhnout jen id z této adresy:
book/default/5

mám na to v presenteru toto:

	public function actionDefault($id)
	{
		$this->chapter = $this->lineRepository->findBy(array('id' => $id))->fetch();
		$this->template->h1 = $this->chapterRepository->findBy(array('id' => $id))->fetch();
	}

Ale já bych chtěl proměnné min. 2, čili nejlépe něco takového: book/Babicka/5

aby Babicka byla proměnná a 5 taktéž. Abych to mohl předat databázi.

Koukal jsem i že se to řeší skrz nějaké šablony: https://doc.nette.org/…tion/routing#…
ale nepochopil jsem kam ten kus kódu strčit, do bootstrap?

Pro jistotu tu dám ještě bootstrap.php

<?php

// Load Nette Framework or autoloader generated by Composer
require __DIR__ . '/../libs/autoload.php';


$configurator = new Nette\Config\Configurator;

// Enable Nette Debugger for error visualisation & logging
$configurator->setDebugMode(TRUE); //Ladenka
$configurator->enableDebugger(__DIR__ . '/../log');

// Specify folder for cache
$configurator->setTempDirectory(__DIR__ . '/../temp');

// Enable RobotLoader - this will load all classes automatically
$configurator->createRobotLoader()
	->addDirectory(__DIR__)
	->addDirectory(__DIR__ . '/../libs')
	->register();

// Create Dependency Injection container from config.neon file
$configurator->addConfig(__DIR__ . '/config/config.neon');
$configurator->addConfig(__DIR__ . '/config/config.local.neon', $configurator::NONE); // none section
$container = $configurator->createContainer();

return $container;
xxxmisko
Člen | 140
+
0
-

ahoj,

ja to robím tak, že si nastavím premennú ako persisent. Potom jej nastavím hodnotu. následne s touto hodnotou vieš pracovať, otvoríš si ju ako $this->nieco.

persistent sa označuje anotáciou /** @persistent */

Routovanie by som riešil až na konci, keď bude projekt hotový.

Som začiatočník, hádam som nenapísal veľké kraviny. Keď tak ma nejaký guru opraví :D

srigi
Nette Blogger | 558
+
0
-

Ak pouzivas sandbox, routy su teraz definovane v subore app/router/RouterFactory.php.
Za riadok 24 pridaj

$router[] = new Route('<presenter>/<person>[/<id>]', 'Homepage:default');

alebo podobne.

Zerig
Člen | 70
+
0
-

Díky velice to pomohlo