Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Zend_Router_Regex i pusta wartość
Forum PHP.pl > Forum > PHP > Frameworki
Koniczynka
Witajcie,

Od pewnego czasu walczę z jednym nieprzyjemnym problemem routera w Zendzie Frameworku.


Kod
routes.czytaj.type = "Zend_Controller_Router_Route_Regex"
routes.czytaj.route = "([^-].*)/news/n_(\d+)_(.+)"
routes.czytaj.defaults.module = "cms"
routes.czytaj.defaults.controller = "news"
routes.czytaj.defaults.action = "czytaj"
; routes.czytaj.map.1 = "separator"
routes.czytaj.map.1 = "id"
routes.czytaj.map.2 = "link"
; routes.czytaj.reverse = "%s/news/n_%s_%s"
1

Problem polega na tym, że ścieżka do newsa będzie wyglądała albo tak:
www.domena.pl/news/n_10_link-do-newsa
albo tak:
www.domena.pl/english/news/n_15_link-do-newsa

Chciałbym, aby mój router potrafił rozpoznać, czy zmapowana wartość separator (która jest teraz zakomentowana) jest pusta czy nie i niezależnie od tego przekierowywał do kontrolera news, wykonując potem akcję czytaj. Wiem, że mogę rozbić ten jeden wpis na dwa, ale to wydaje mi się bardzo ekstremalne rozwiązanie (tym bardziej, że będę miał kilka takich sytuacji).

([^-].*) to wynik moich ostatnich prób. Przedtem wstawiałem tam (.+), (.*), . , ([.+]|()) - albo coś w tym stylu. Jednak żaden ze wzorów nie pasował do formatu linka bez separatora (www.domena.pl/news/n_10_link-do-newsa).

LBO
Zend_Controller_Router_Route_Chain

Wystarczyła chwila z manualem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.