Tomasz
Wójcik
inżynier informatyk,
specjalizacja: sieci
komputerowe
Temat: Problem z routingiem, potrzebuję niejako dwuznacznych...
Witam.Piszę CMS, którego sercem jest kontroler PagesController (który w założeniu ma działać niejako front-controller). Model Page bazuje na TreeBehavior oraz drzewiastej strukturze slugów w postaci unikalnej ścieżki do danej strony.
- aktualnosci (slug: aktualnosci)
- produkty (slug: produkty)
- produkt 1 (slug: produkty/produkt-1)
- produkt 2 (slug: produkty/produkt-2)
Do tego wszystkiego mam podpięty route w postaci:
Router::connect(
'/:path',
array('controller' => 'pages', 'action' => 'view'),
array(
'pass' => array('path'),
'path' => "(?!admin/)[\w/-]+",
)
);
tak, aby linki do strony były w postaci:
http://domena.pl/produkty/produkt-1
A teraz mój problem:
Nie mogę wywołać strony z parametrami np.
http://domena.pl/produkty/aktywne
... ponieważ taki URI spowoduje szukanie strony o slugu "/produkty/aktywne" (będzie 404) zamiast znaleźć stronę "/produkty", a parametr "[0] => aktywne" wrzucić do Controller::params['named'].
Macie jakąs radę jak to rozwiązać, żeby Router odpowiednio linkował do kontrolera, a jednocześnie poprawnie obsługiwał parametry passed i named zgodnie z konwencją przyjętą w ścieżce?
od razu mówię, że nie wiem jakie nazwy parametrów będą się pojawiać w adresie URI, bo to będzie zależne od wtyczek, zatem podanie na sztywno nazw parametrów w Router::connect() odpada.
Pomóżcie :)Tomasz Wójcik edytował(a) ten post dnia 19.02.10 o godzinie 21:30