Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF]Routig opcjonalny parametr
Forum PHP.pl > Forum > PHP > Frameworki
amii
Co chcę osiągnąć mieć url o takiej postaci: http://www.strona.pl/szkolenie/1/388/excel...ny-podstawy-vba

Trzeci parametr powinien być opcjonalny, chcę aby każdy adres http://www.strona.pl/szkolenie/1/388/dowol...iag-z-literowka
przekierowywał na http://www.strona.pl/szkolenie/1/388/excel...ny-podstawy-vba

To co wymyśliłem to klasa routera zdefiniowana w application.ini
  1. resources.router.routes.instance.type = "Zend_Controller_Router_Route_Regex"
  2. resources.router.routes.instance.route = "szkolenie/(\d{1,2})/(\d{1,3})(?:/(\w+))?"
  3. resources.router.routes.instance.defaults.controller = szkolenie
  4. resources.router.routes.instance.defaults.action = index
  5. resources.router.routes.instance.map.1 = "instance"
  6. resources.router.routes.instance.map.2 = "training"
  7. resources.router.routes.instance.map.3 = "nazwa"
  8. resources.router.routes.instance.reverse = "szkolenie/%d/%d"
  9. ;resources.router.routes.instance.reverse = "szkolenie/%d/%d/%s"


Wywołanie w widoku:
  1. $this->url(array('training' =>$rekord->id, 'instance'=>$id_training, 'nazwa' => 'excel-2007-10-poziom-zaawansowany-podstawy-vba'), 'instance', false)


W powyższym przypadku w widoku dostaje link bez trzeciego parametru (nazwa), jeśli odkomentuje ostatnią linię z applcation.ini to wyrzuca mi błąd:
Fatal error: Uncaught exception 'Zend_Controller_Router_Exception' with message 'Cannot assemble. Too few arguments?' in C:\php\includes\Zend\Controller\Plugin\Broker.php on line 336
IceManSpy
To ustaw sobie 3 parametr jako domyślny:
  1. resources.router.routes.instance.defaults.nazwa= ''

Może to pomoże.
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.