Routování tvorba odkazů a zbytečné přesměrování
- newbie
- Člen | 31
Zdravím
Nette: 2.0.10, php 5.3
Začínám routovat a nevím kde dělám chybu. Snažím se přejmenovat akci třeba z alphabetical na abecede a nette do htmlka mi vypíše odkaz ve tvaru domena.cz/Test/alphabetical_a kliknu na něj a az ted dojde k presmerovani na domena.cz/Test/Abecede_a kde jsou zase všechny odkazy ve tvaru domena.cz/Test/alphabetical_a
Odkaz:
<a href="{link Bi:Alphabetical a}">A</a>
RouterFactory:
$router = new RouteList();
$router[] = new Route('Test/<action>[_<letter>]', array(
'module' => 'Front',
'presenter' => 'Bi',
'action' => array(Route::VALUE => 'default',
Route::FILTER_TABLE => array('Abecede' => 'alphabetical')
)
));
Jak dosahnout toho aby se vypisovaly odkazy už ve tvaru domena.cz/Test/Abecede_a ? Díky moc
Editoval newbie (25. 5. 2013 11:24)
- SontoEremo
- Člen | 341
Nazdar ale pokiaľ viem
class RouterFactory
{
/**
* @return Nette\Application\IRouter
*/
public function createRouter()
{
$router = new RouteList();
$router[] = new Route('index.php', 'Test:Bi:alphabetical', Route::ONE_WAY);
$router[] = new Route('Test/<action>[_<letter>][/<id>]', array(
'module' => 'Test',
'presenter' => 'Bi',
'action' => array(Route::VALUE => 'default',
Route::FILTER_TABLE => array('Abecede' => 'alphabetical')
)
));
$router[] = new Route('<presenter>/<action>[/<id>]', 'Test:Bi:alphabetical');
return $router;
musíš mať TestModule nie FrontModule. A to <letter> nemáš nikde definované
Editoval SontoEremo (25. 5. 2013 11:01)
- newbie
- Člen | 31
Tak jsem pokročil:
$router = new RouteList();
$router[] = new Route('Test/<action>[_<letter>]', array(
'module' => 'Front',
'presenter' => 'Bi',
'action' => array(Route::VALUE => 'alphabetical',
Route::FILTER_TABLE => array('Abecede' => 'alphabetical')
)
));
Už vypisuje urlka tak jak chci
Test/Abecede_n
, ale ještě se potřebuju zbavit
Test/default
Editoval newbie (25. 5. 2013 11:24)
- newbie
- Člen | 31
Tak jsem to vyřešil… asi ne moc elegantně, nevím jestli správně a určitě to jde nějak jednodušeji, ale:
$frontRouter[] = new Route('Kapely_a_Intepreti/', array(
'module' => 'Front',
'presenter' => 'Bi',
'action' => 'default'
));
$frontRouter[] = new Route('Kapely_a_Intepreti/<action>[_<letter>]/', array(
'module' => 'Front',
'presenter' => 'Bi',
'action' => array(Route::VALUE => 'alphabetical',
Route::FILTER_TABLE => array('Abecede' => 'alphabetical')
)
));