Nette Framework – Routovani
- Takeshi
- Člen | 596
Zdravim :-)
Mam mensie problemy so smerovanim stranok. Teda ked dam do bootstrapu
<?php
$container = $configurator->createContainer();
$container->router[] = new Route('uvodna_stranka', 'Homepage:default');
?>
, tak by o malo vypisat „....../www/uvodna_stranka“ namiesto „....../www/“ ale nenapise … any idea? :-)
Editoval Takeshi (14. 12. 2012 16:30)
- MartinitCZ
- Člen | 580
V tomto odstavci to je, stačí si to pořádně přečíct.
https://doc.nette.org/…tion/routing#…
- Takeshi
- Člen | 596
Tu je cely boodstrap.php …
<?php
<?php
// Load Nette Framework or autoloader generated by Composer
require __DIR__ . '/../libs/autoload.php';
use Nette\Application\Routers\Route;
$configurator = new Nette\Config\Configurator;
// Enable Nette Debugger for error visualisation & logging
//$configurator->setDebugMode(TRUE);
$configurator->enableDebugger(__DIR__ . '/../log');
// Enable RobotLoader - this will load all classes automatically
$configurator->setTempDirectory(__DIR__ . '/../temp');
$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();
$router = $container->router;
$router = new Route('aaaaa', 'Homepage:default');
return $container;
?>
… riadky
<?php
$router = $container->router;
$router = new Route('aaaaa', 'Homepage:default');
?>
OR
<?php
$container->router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
$container->router[] = new Route('uvodna_stranka', 'Homepage:default');
$container->router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
?>
som tam pridal zo stareho Bootstrap-u
⇒ skusal som oba sposoby
… + info: je tam zatial iba jeden presenter a k nemu iba default.latte
Editoval Takeshi (15. 12. 2012 0:38)
- vvoody
- Člen | 910
Takeshi napsal(a):
<?php $router = $container->router; $router = new Route('aaaaa', 'Homepage:default'); ?>
Toto je úplná somarina, poriadne sa na to pozri… vložíš niečo do premennej a potom to prepíšeš novým objektom ktorý nieje nijako spojený so zvyškom aplikácie.
<?php $container->router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY); $container->router[] = new Route('uvodna_stranka', 'Homepage:default'); $container->router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default'); ?>
Toto už dáva trochu zmysel. Pozri sa do toho debug baru ako som už písal, zistíš že router obsahuje aj iné routy, okrem tých ktoré si napísal do bootstrapu a zistíš aj to, že tvoje routy sa k slovu ani nedostanú. Ten debug bar tam k niečomu je, tak ho používaj a pozri si aké služby sú v konfigu aktuálneho sanboxu.
- Takeshi
- Člen | 596
Tak v poradi:
index.php
<presenter>/<action>[/<id>]
index.php
uvodna_stranka
<presenter>/<action>[/<id>]
… ten debug bar som naozaj nepouzival, uznavam. Ale na druhej strane … tie tri riadky, ktore ti davali zmysel som vlozil zo stareho projektu a tam mi to funguje skvele … (bootstrap zo starsieho Nette) …