Přeskakování routy pokud nevyhovuje

- akadlec
 - Člen | 1326
 
Dá se nějak udělat přeskočení routy pokud nevyhovuje? Dejme tomu že mam routu:
http://domena.tld/username/profil
new NetteRouteMock('//app.[!<domain [a-zA-Z0-9-]+>].[!<tld [a-zA-Z0-9-]+>]/[!<locale [a-z]{2,4}>/]/<user>/<action>', array(
	'module'	=> 'Application',
	'presenter'	=> 'Profile',
	'action'	=> 'default',
	'locale'	=> array(
		Route::VALUE	=> 'en',
		'fixity'		=> Route::CONSTANT,
	)
));
a taky bych chtěl mít routu
http://domena.tld/modul/akce
new NetteRouteMock('//app.[!<domain [a-zA-Z0-9-]+>].[!<tld [a-zA-Z0-9-]+>]/[!<locale [a-z]{2,4}>/]/<presenter>/<action>', array(
	'module'	=> 'Application',
	'presenter'	=> 'Default',
	'action'	=> 'default',
	'locale'	=> array(
		Route::VALUE	=> 'en',
		'fixity'		=> Route::CONSTANT,
	)
));
a chci aby ta první byla zpracována jen pokud se podaří najít uživatele podle jeho ursername, pokud se nepodaří najít, tak ať je routa přeskočena a zpracuje se druhá.
Editoval akadlec (7. 3. 2014 13:03)

- David Matějka
 - Moderator | 6445
 
jj, FALSE je z hlediska Route validni hodnota. Pro zamitnuti pouzivej vzdy NULL

- akadlec
 - Člen | 1326
 
tak asi něco dělám blbě, vrátím ve filter_in null ale stejnak mě to tu routu bere. Když se podívám do debugbaru na routy, tak u ní vidím yes a hned za ní mám další routu která by to měla obsloužit a u ní je may takže routy jsou asi ok. Ten parametr na základě kterého se má routa přeskočit taky ukazuje NULL hodnotu. Je potřeba nastavit ještě nějaký parametr?
$list[] = new NetteRouteMock('[!<locale [a-z]{2,4}>/]mailbox[/<mailbox>]', array(
	'module'	=> 'Application',
	'presenter'	=> 'Default',
	'action'	=> 'default',
	'mailbox'	=> array(
		Route::FILTER_OUT	=> 'MailboxModule\Router\FoldersRouter::getFolderSlugById',
		Route::FILTER_IN	=> 'MailboxModule\Router\FoldersRouter::getFolderIdBySlug'
	),
	'locale'	=> array(
		Route::VALUE	=> 'en',
		'fixity'		=> Route::CONSTANT,
	)
));
$list[] = new NetteRouteMock('[!<locale [a-z]{2,4}>/]mailbox/<presenter>[/<action>][/<id>]', array(
		'module'	=> 'Application',
		'presenter'	=> 'Default',
		'action'	=> 'default',
		'locale'	=> array(
			Route::VALUE	=> 'en',
			'fixity'		=> Route::CONSTANT,
		)
	));
url je:
http://domain.tld/en/mailbox/settings/
a router ukazuje:
yes
Route 	[!<locale [a-z]{2,4}>/]mailbox[/<mailbox>]
module = Application
presenter = Default
action = default
mailbox = NULL
locale = en
Mailbox:Application:Default:default
locale = en
mailbox = NULL
may
Route 	[!<locale [a-z]{2,4}>/]mailbox/<presenter>[/<action>][/<id>]
module = Application
presenter = Default
action = default
locale = en
id = NULL
Mailbox:Application:Settings:default
locale = en
id = NULL
				
- Jan Tvrdík
 - Nette guru | 2595
 
<mailbox> nesmí být volitelný parametr, nebo bys musel
použít výrazně mocnější globální filtry.

- Jan Tvrdík
 - Nette guru | 2595
 
Můžu se ještě zeptat, k čemu si myslíš, že slouží to
'fixity' => Route::CONSTANT?

- Michal Vyšinský
 - Člen | 608
 
@Jan Tvrdík: K čemu slouží Route::CONSTANT? Vidím tuto konstantu poprvé :)
Editoval Michal Vyšinský (20. 3. 2014 9:57)