delboy1978uk Posted September 21, 2010 Share Posted September 21, 2010 Hi guys, I'm going through the Apress book "beginning zend framework", and now i'm stuck lol i have various actions for an artist controller, one of which is: http://localhost/artist/new (adds new artist) the book then explains how to enable routing: http://localhost/artist/thebeatles (actually goes to artist/profile action) Here's the routing code: /** Routing Info **/ $FrontController = Zend_Controller_Front::getInstance(); $Router = $FrontController->getRouter(); $Router->addRoute("artistprofile", new Zend_Controller_Router_Route( "artist/:artistname", array ("artistname" => "The Smiths", "controller" => "artist", "action" => "profile" ) )); However, since enabling this routing, even artist/new gets routed to artist/profile! Surely it only routes if the action doesn't exist! The book doesn't even recognise that theres a problem, but then the book is for v1.8, and i have v1.10 Quote Link to comment https://forums.phpfreaks.com/topic/213964-zf-routing-insanity/ Share on other sites More sharing options...
ignace Posted September 21, 2010 Share Posted September 21, 2010 "artistname" => "The Smiths" Shouldn't be there. You should provide this value when you use the Route like: print $this->url(array('artistname' => 'The Smiths'), 'artistprofile'); Read the errata if you get stuck chances are someone found a problem in the code and reported it. Quote Link to comment https://forums.phpfreaks.com/topic/213964-zf-routing-insanity/#findComment-1113591 Share on other sites More sharing options...
delboy1978uk Posted September 21, 2010 Author Share Posted September 21, 2010 Thanks for your reply! I removed the line, and now it goes to the index controller when i dont type an action name :-) however if I type in /add or /edit etc, it still goes to a profile page :-s I'l check out the errata like you said, thanks :-) again, if anyway can shed some light on this i'll be very grateful! all i need is the normal user/add user/edit etc which happens automatically, yet if i type in user/nonaction it would take you to user/viewprofile/nonaction, with nonaction being the users name :-P so only go to the view profile thing if there isnt an existing action in the controller :-) Quote Link to comment https://forums.phpfreaks.com/topic/213964-zf-routing-insanity/#findComment-1113737 Share on other sites More sharing options...
ignace Posted September 21, 2010 Share Posted September 21, 2010 with nonaction being the users name :-P so only go to the view profile thing if there isnt an existing action in the controller :-) If you want to direct to a method/action use: $this->url(array('action' => 'add', 'controller' => 'artists'), null, true); If you want to specify an artist and thus use a pre-defined route use: $this->url(array('artistname' => 'The Smiths'), 'artistprofile', true); Quote Link to comment https://forums.phpfreaks.com/topic/213964-zf-routing-insanity/#findComment-1113785 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.