Hi all,
Sorry to bring this topic up again...
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/barthe output is:
/nl/foo
/nl/bar
which is good!
if i call:
http://mydomain/en/foothe 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')
http://test/en/baroutput:
/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
Gecontroleerd op virussen door de JOJO Secure Gateway.