Nick -- The fix looks good, though I want to add some unit tests to verify. Could you put this in the issue tracker, please?
Thanks! -- Nick Howell <[EMAIL PROTECTED]> wrote (on Monday, 16 July 2007, 08:03 PM -0400): > This seems like an error to me, but then again perhaps I am confused by the > expected functionality... > I am doing a $this->_redirector->goto(null,null,'admin'); inside my > Admin_ClassController->viewAction() > What I expect to happen here is for the page to redirect to > http://example.com/ > admin but it goes to http://example.com/admin/class instead. Granted, I can do > a $this->_redirector->goto(null,'index','admin'); but then I get http:// > example.com/admin/index (I'd prefer to not have the extra /index on the end). > > Looks like a problem in Zend_Controller_Action_Helper_Redirector->setGoto(); > ... > > if (null === $controller) { > $controller = $request->getControllerName(); > if (empty($controller)) { > $controller = $dispatcher->getDefaultControllerName(); > } > } > > should be: > > if (null === $controller) { > if (null !== $action) { > $controller = $request->getControllerName(); > if (empty($controller)) { > $controller = $dispatcher->getDefaultControllerName(); > } > } > } > > The addition checks to see if the $action was set, THEN we can get the > $controller if it was not set - otherwise leave $controller as null. > I tested this change in my application and the problem was solved. > > This also keeps the functionality consistent because you can now do a $this-> > _redirector->goto(null); and be redirected to the current module index rather > than the controller you are currently in. > > Can anyone confirm my logic behind this? If so, let's see this in the next > release pretty please :-) > > Thanks, > Nick Howell -- Matthew Weier O'Phinney PHP Developer | [EMAIL PROTECTED] Zend - The PHP Company | http://www.zend.com/
