Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZF]Routig opcjonalny parametr
amii
post
Post #1





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


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


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
IceManSpy
post
Post #2





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


To ustaw sobie 3 parametr jako domyślny:
  1. resources.router.routes.instance.defaults.nazwa= ''

Może to pomoże.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 19:37