Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] problem z routingiem
Forum PHP.pl > Forum > PHP > Frameworki
Foxx
Symfony 1.4

Na stronie powitalnej user wybiera jedno z dwóch miast, pozostałą część strony ogląda w kontekście swojego wyboru. Chciałbym trzymać nazwę wybranego miasta w urlu i zacząłem to robić analogicznie do rozdziału "culture in the url" z dokumentacji, ale trochę utknąłem. Plik routing.yml wygląda tak:

  1. # default rules
  2. homepage:
  3. url: /
  4. param: { module: start, action: index }
  5.  
  6. # generic rules
  7. default_index:
  8. url: /:miasto/:module
  9. param: { action: index }
  10. requirements:
  11. tor: (?:krakow|katowice)
  12.  
  13. default:
  14. url: /:miasto/:module/:action/*
  15.   requirements:
  16.   tor: (?:krakow|katowice)


i udało mi się w ten sposób osiągnąć prawie wszystko, url w przeglądarce wygląda tak: www.strona.pl/katowice/aktualnosci ale mam jeszcze jeden problem.

W każdym url_for na stronie muszę teraz przekazywać zmienną miasto więc każdy url musi wyglądać tak:
  1. url_for('modul/index?miasto='.$sf_request->getParameter('miasto'));


Jak mogę uniknać konieczności przekazywania tego parametru w każdym urlu?
destroyerr
Spróbuj skorzystać z sfPatternRouting::setDefaultParameter() ustawiając parametr miasto na wartość z Twojego adresu url. Wykonanie tego możesz podpiąć pod zdarzenie i o ile dobrze pamiętam, powinno to być request.filter_parameters.
Foxx
Zgodnie z twoją radą wykorzystałem setDefaultParameter, ale nie do końca zrozumiałem drugą część wypowiedzi i zrobiłem to używając filtra, którego kod ostatecznie wygląda tak:

  1. sfContext::getInstance()->getRouting()->setDefaultParameter('miasto', sfContext::getInstance()->getRequest()->getParameter('miasto'));


Wygląda na to, że działa. Dzięki za pomoc.
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.