[ZF] Router action variable

Pagina: 1
Acties:

Onderwerpen


  • GWTommy
  • Registratie: Mei 2008
  • Laatst online: 05-08-2023
Ik zit met een probleem. Ik wil wat URLs routen via de router, maar het lukt niet echt. Voorbeeldje van URLs:
code:
1
2
3
/articles/ => /articles/
/articles/Pagina_Titel/ => /articles/view/title/Pagina_Title/
/articles/Pagina_Titel/edit/ => /articles/edit/title/Pagina_Titel/


Helaas gaat met mijn huide route alles naar viewAction(), /edit/ wordt dus gewoon genegeerd door de router.

Dit is mijn router:
code:
1
2
3
4
5
6
resources.router.routes.articles.route = "articles/:title(?/:action)?/*"
resources.router.routes.articles.defaults.controller = articles
resources.router.routes.articles.defaults.action = view
resources.router.routes.articles.defaults.title = "Intro"
resources.router.routes.articles.reqs.title = ".*"
resources.router.routes.articles.reqs.action = ".*"


Iemand die weet waar ik fout ga? In mijn ogen zou dit toch moeten werken. Ik gebruik de laatste versie van ZF.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

En vertel: waar heb je op gezocht, wat vond je en waarom was dat niet relevant voor je?

Even inhoudelijk over je verhaal: gaat dit op voor alle routes of alleen met /edit/? Heb je geen rewrites ervoor zitten die rout in 't eten gooien?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • GWTommy
  • Registratie: Mei 2008
  • Laatst online: 05-08-2023
Ik heb de ZF documentatie over de router doorgenomen, maar kom er niet uit. Op het eerste gezicht leek het me dat ik een route chain moest maken, maar dan werd alles fout doorgestuurd. Toen ben ik weer terug gegaan naar m'n eerste opzet waarbij alleen /articles/Pagina_Titel/ werd doorgestuurd, maar verder dan wat ik nu heb kwam ik niet met de documentatie omdat het regex gedeelte volgens mij niet wordt gesnapt of uit de url wordt gehaald. Zoeken lukt met niet echt omdat ik het probleem niet gedefinieerd krijg. Normaal lukt het eigenlijk wel met de documentatie..

Er zitten geen rewrites voor, behalve dan de standaard rewrite die alles naar index.php stuurt.

Het probleem is dat het volgende wordt doorgestuurd:
code:
1
2
3
/articles/ => /articles/
/articles/Pagina_Titel/ => /articles/view/title/Pagina_Title/
/articles/Pagina_Titel/edit/ => /articles/view/title//Pagina_Titel/


Terwijl /articles/Pagina_Titel/*/ moet worden doorgestuurd naar /articles/*/title/Pagina_Titel/. De action, die dus naar achteren wordt verplaatst, wordt helemaal genegeerd.

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Voeg dit sowieso eens toe:

resources.router.routes.articles.type = "Zend_Controller_Router_Route_Regex"

[ Voor 11% gewijzigd door HuHu op 08-09-2011 14:53 ]


  • GWTommy
  • Registratie: Mei 2008
  • Laatst online: 05-08-2023
Goede tip. Over het hoofd gezien. Probleem is nou wel, ik krijg mooie errors van PHP:
code:
1
2
3
Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 27 in ../library/Zend/Controller/Router/Route/Regex.php on line 83
Warning: Invalid argument supplied for foreach() in ../library/Zend/Controller/Router/Route/Regex.php on line 94
Fatal error: Unsupported operand types in ../library/Zend/Controller/Router/Route/Regex.php on line 104


Het lijkt er dus op dat mijn regex niet klopt, na wat spelen heb ik er dit van gemaakt: "articles/:title(/:action)?*"
Helaas haalt dat niets uit.

Edit: overigens moeten sommige actions wel gewoon bruikbaar blijven, stel:
/articles/delete/id/1/ moet gewoon via de normale route lopen.

[ Voor 10% gewijzigd door GWTommy op 08-09-2011 15:30 ]