У меня вопрос, как связать несколько маршрутов с помощью Zend_Controller_Router_Route_Chain?
Например, я хочу объединить 3 маршрута в цепочку год / месяц / день, но голол такой:
when url is example.com/2011 runs index controller, year action example.com/2011/11 runs index controller, year-month action example.com/2011/11/10 runs index controller, year-month-day action
Я пытаюсь использовать этот код:
$front = Zend_Controller_Front::getInstance();
$router = $front->getRouter();
$chain = new Zend_Controller_Router_Route_Chain();
$route1 = new Zend_Controller_Router_Route(
':year',
array(
'controller' => 'news',
'action' => 'year'
)
);
$route2 = new Zend_Controller_Router_Route(
':month',
array(
'controller' => 'news',
'action' => 'year-month'
)
);
$route3 = new Zend_Controller_Router_Route(
':day',
array(
'controller' => 'news',
'action' => 'year-month-day'
)
);
$chain->chain($route1)
->chain($route2)
->chain($route3);
$router->addRoute('chain', $chain)
->addRoute('route3', $route3)
->addRoute('route2', $route2)
->addRoute('route1', $route1);
Когда я захожу на example.com/2012 и example.com/2012/11/11, все в порядке
но когда я захожу на example.com/2012/11/, приложение показывает мне действие год-месяц-день, а на странице есть
Notice: Undefined index: day in P:\Zend\ZendServer\share\ZendFramework\library\Zend\Controller\Router\Route.php on line 299
Возможно я что-то не так делаю. Помогите, пожалуйста, решить мою проблему. Спасибо.