Chyba routování po předání parametru s lomítkem
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- jjohny
- Člen | 3
Prosím o radu. Nevím, jak jednoduše odstranit chybu při routování, pokud předávám parametr, který obsahuje zpětné lomítko „/“ (parametr q).
Chyba:
No route for DicTranslate:translate(lg_lf=cs, lg_rg=en, q=/)
Mám vytvořený formulář, který zpracovávám takto:
public function processTranslateForm(AppForm $form)
{
$values = $form->getValues();
$this->redirect('translate', $values);
}
public function actionTranslate($lg_lf, $lg_rg, $q)
{
...
}
V akci translate hledám v db. Výsledek předám do šablony.
Routu mám nastavenou takto:
`$router[] = new Route('<presenter>/<action>/<lg_lf>/<lg_rg>/<q>', array(
'presenter' => 'DicTranslate',
'action' => 'default',
'lg_lf' => NULL,
'lg_rg' => NULL,
'q' => NULL,
));`
Pokud není routování nastaveno pro parametry, tak vše funguje bez problému.
- Jur4
- Člen | 51
Nezkoušel jsem to, ale myslím, že jsem někde viděl tohle.
$router[] = new Route('<presenter>/<action>/<lg_lf>/<lg_rg>/<q .*?>', array(
'presenter' => 'DicTranslate',
'action' => 'default',
'lg_lf' => NULL,
'lg_rg' => NULL,
'q' => NULL,
));
edit: Pokud to takhle bude fungovat, tak parametry <lg_lf> a <lg_rg> by nejspíš měly být povinné ->
$router[] = new Route('<presenter>/<action>/<lg_lf>/<lg_rg>/<q .*?>', array(
'presenter' => 'DicTranslate',
'action' => 'default',
'q' => NULL,
));
Editoval Jur4 (6. 5. 2011 23:02)