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
+
0
-

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
+
0
-

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)