Špatná action formuláře v modulu
- Chbox
- Člen | 125
Mám divnej problém a to sice, že form generuje špatnou action viz.
/document_root/admin/?do=form-submit
správná action by měla být:
/document_root/admin/edit/?do=form-submit
routa do modulu je:
$router = $application->getRouter();
$router[] = new Route('index.php', array(
'module' => 'Front',
'presenter' => 'Homepage',
'action' => 'default',
), Route::ONE_WAY);
$router[] = new Route('admin/<presenter>/<id>', array(
'module' => 'Admin',
'presenter' => 'Edit',
'action' => 'default',
'id' => NULL,
));
$router[] = new Route('<presenter>/<id>', array(
'module' => 'Front',
'presenter' => 'Homepage',
'action' => 'default',
'id' => NULL,
));
zajimavý je, že když umístím form do mudulu na jinej presenter, než je
uvedenej jako default v routeru, tak se action generuje správně.
Co dělám špatně?
Nette2 Alpha2
Editoval Chbox (9. 12. 2010 6:49)
- kravčo
- Člen | 721
Podľa tvojej definície rout sú obe actiony
/document_root/admin/?do=form-submit
/document_root/admin/edit/?do=form-submit
ekvivalentné ale Nette generuje tú, ktorá je kratšia. Je tomu tak preto,
že prezenter Edit
je predvolený a teda sa z URI odstraňuje.
Ak riadok
'presenter' => 'Edit',
z definície admin routy odstrániš, bude sa generovať action akú chceš, no lepšie asi bude, ak sa uspokojíš s tou, aká je, pretože by mala byť v poriadku. Ktorá routa sa naozaj použila zistíš najlepšie pomocou RoutingDebuggera, ktorý je štandardne v nette paneli.
- Chbox
- Člen | 125
Přidal jsem routu speciálne pro admin a action formu se teď generuje správně, no nevim, jestlli je to správné řešení:
$router[] = new Route('index.php', array(
'module' => 'Front',
'presenter' => 'Homepage',
'action' => 'default',
), Route::ONE_WAY);
$router[] = new Route('admin/<presenter>/<id>', array(
'module' => 'Admin',
'action' => 'default',
'id' => NULL,
));
$router[] = new Route('admin', array(
'module' => 'Admin',
'presenter' => 'Edit',
'action' => 'default',
'id' => NULL,
));
$router[] = new Route('<presenter>/<id>', array(
'module' => 'Front',
'presenter' => 'Homepage',
'action' => 'default',
'id' => NULL,
));
…zároveň asi prosím adminy o přesun příspěvku do vlákna „Routovaní“