Tomasz Wójcik

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

konto usunięte

Temat: Problem z routingiem, potrzebuję niejako dwuznacznych...

Na moje oko powinno być '/:path/*', wtedy przejdzie każdy parametr, tylko że musiał byś ze sluga wyłączyć znak '/', zastąpić go np '-'.
Tomasz Wójcik

Tomasz Wójcik inżynier informatyk,
specjalizacja: sieci
komputerowe

Temat: Problem z routingiem, potrzebuję niejako dwuznacznych...

aaa już nawet zapomniałem o tym wątku :P

jakiś czas temu już sobie własnie zmieniłem delimitera na przecinek, a gwiazdka to już inna broszka

Następna dyskusja:

Aplikacja w CakePHP, proble...




Wyślij zaproszenie do