Ваш код выглядит нормально, за исключением того, что RockyFord печально. Вы должны передавать только те параметры, которые требуются для назначенного маршрута в url (), который требуется для обозначенного маршрута (когда используется маршрут по умолчанию, он действительно требует модуля, контроллера, действия, но вашего). Для курса courseadd 'требуется только параметр std_id). Кроме того, Вы должны немного улучшить свой маршрут до:
$route = new Zend_Controller_Router_Route('courses/:std_id', array(
'module' => 'main',
'controller' => 'product',
'action' => 'add',
'std_id' => null //default value if param is not passed
));
Конструкция param_name/:param_value
в вашем маршруте избыточна, поскольку вы уже назвали параметр, поэтому, используя вышеприведенный маршрут, вы получите std_id
param в контроллере, используя
$this->_getParam('std_id')
Значение по умолчанию в определении маршрута спасет от броска Zend_Controller_Router_Exception: std_id is not specified
, но похоже, что $entry['std_id']
не установлено.