Akceptování jednoho lomítka

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
baal
Člen | 34
+
0
-

Zdravím,

jak by bylo možné udělat takovou routu?

Route('<one>/<two>/<three>');

Kde <two> bude akceptovat jedno lomítko, tj. url http://example.com/lorem/ipsum/dolor/sit bude:

  • one ⇒ lorem
  • two ⇒ ipsum/dolor
  • three ⇒ sit

Předem děkuji za jakékoliv nakopnutí :)

Šaman
Člen | 2659
+
0
-

Myslím, že toto jednoduše nejde.
Ale je možné napsat si vlastní router, kde si cestu rozparsuješ podle sebe.

nanuqcz
Člen | 822
+
0
-

Nepomohlo by nastavit tomu vlastní regulární výraz?

Route('<one>/<two [^/]/[^/]>/<three>');
baal
Člen | 34
+
0
-

Děkuji za rady, asi půjdu cestou vlastního routeru :)

David Grudl
Nette Core | 8218
+
0
-

Je potřeba vypnout urlencode, takže třeba (v dev verzi už to není potřeba)

Route('<one>/<two [^/]/[^/]>/<three>', array(
	'two' => array(Route::FILTER_OUT => NULL),
));