I’m developing a multilanguage Zend project. I am creating events so I wanna use a structure like this:
- domain.com/event/2010/ => Events on year 2010
- domain.com/event/2010/11/ => Events on november 2010
- domain.com/event/2010/11/23/ => Events on november, 23th 2010
For this pourpuse I created the following routes:
$router->addRoute('event', new Zend_Controller_Router_Route_Regex('event/(\d+)(/(\d+)(/(\d+))?)?', array(
'module' => 'public',
'controller' => 'event',
'action' => 'show'
)));
$router->addRoute('eventLang', new Zend_Controller_Router_Route_Regex(':language/event/(\d+)(/(\d+)(/(\d+))?)?', array(
'language'=>'en'
'module' => 'public',
'controller' => 'event',
'action' => 'show'
)));
The first one works perfect. the second one display an error like “action 2010 does not exists”. What is the problem here???
You can’t use variables (
:languagein your case) in Zend_Controller_Router_Route_Regex. You should rewrite your regexp in next way: