Router – Migrace z 2.2 na 2.3
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- DavidTheNewbie
- Člen | 79
Ahojt. Rad bych pomoc pri migraci na 2.3. V 2.2 vypadala jedna z mych route mask takto:
/**
* @param Container $di
* @return \Nette\Application\IRouter
*/
public static function createRouter(Container $di)
{
// rest route
$routes[] = new Route('api/<presenter>/[<action=default>]', array(
'presenter' => array(
Route::FILTER_IN => function ($presenter) {
// i.e. demo to DemoRest, my-demo to MyDemoRest
$parts = explode('-', $presenter);
foreach ($parts as &$part) {
$part = ucfirst($part);
}
return sprintf('%sRest', implode('', $parts));
}
)
));
}
Po migraci na 2.3 se generuje chyba:
Nette\Application\BadRequestException #404 No route for HTTP request.
Jak by prosim bylo nutne modifikovat route mask?
Zajimave je, ze toto take nefunguje:
$routes[] = new Route('api/<presenter>/[<action=default>]', array(
'presenter' => 'DemoRest'
));
Kdyz to zadam tzv. natvrdo:
$routes[] = new Route('api/demo/getDemoData', array(
'presenter' => 'DemoRest'
));
.. tak maska projde. Skrze FILTER_IN po migraci na 2.3 nikoliv, pritom dokumentace pro 2.3 routovani filtry nijak nemeni.
Editoval DavidTheNewbie (24. 2. 2017 13:12)
- CZechBoY
- Člen | 3608
Myslím, že právě řešíš stejnej problém jako ve vedlejším
vláknu
https://forum.nette.org/…l-strtolower#…