Details
-
Type:
Bug
-
Status:
Resolved
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: 1.5.1
-
Fix Version/s: 1.6.0
-
Component/s: Zend_Controller
-
Labels:None
Description
Andriess Seutens:
I have a little issue with the url helper and route matching. I think
this is a critical missing feature / bug.
I'm going to try to explain my issue by example:
My bootstrap file:
set_include_path('./ZendFramework-1.5.1/library');
require_once 'Zend/Loader.php';
Zend_Loader::registerAutoLoad();
$frontController = Zend_Controller_Front::getInstance();
$frontController->addControllerDirectory('./application/controllers')
->throwExceptions(true)
->returnResponse(true);
$router = $frontController->getRouter();
$router->addRoute('foo', new Zend_Controller_Router_Route(
':lang/foo',
array(
'lang' => 'nl',
'controller' => 'index',
'action' => 'index'
)
));
$router->addRoute('bar', new Zend_Controller_Router_Route(
':lang/bar',
array(
'lang' => 'nl',
'controller' => 'index',
'action' => 'index'
)
));
$response = $frontController->dispatch();
$response->sendHeaders()
->outputBody();
My template file:
<?php echo $this->url(array(), 'foo') ?> <br /> <?php echo $this->url(array(), 'bar') ?>
when i call: http://mydomain/nl/bar
the output is:
/nl/foo
/nl/bar
which is good!
if i call: http://mydomain/en/foo
the output is
/en/foo
/en/bar
which is good too!
the problem occurs when the last route in the row is matched (in this
case: 'bar')
output:
/nl/foo
/en/bar
works for all routes after the matched one, but not the ones before.....
In order for this to work I would need to pass in the 'lang' parameter:
<?php echo $this->url(array('lang' =>
Zend_Controller_Front::getInstance()->getRequest()->getParam('lang')),
'foo') ?>
So, in other words: I am unable to take a url param into each route and
use it with the url helper?
Best,
Andriesss
Issue Links
| This issue is related to: | ||||
| ZF-3219 | Issue regarding similiar routes |
|
|
|
Probably temporary fix to inconsistent route path variables handling.