Как и в предыдущем ответе, вы могли бы использовать маршрут Regex, но для начала, вероятно, было бы проще использовать «обычный» маршрут, который выглядит следующим образом:
http://yoursite.com/1234/John-Smith/
В вашей начальной загрузке вы бы сделали:
$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$router->addRoute('user', new Zend_Controller_Router_Route(
':user-id/:user-name/',
array(
'module' => 'user',
'controller' => 'user',
'action' => 'read'
)
));
Это добавляет маршрут, называемый "пользователь", к маршрутизатору, который имеет форму / user-id / user-name, поэтому / 1234 / John-Smith /. Он будет искать пользовательский контроллер в пользовательском модуле и перейдет к действию чтения. Конечно, вы можете изменить это на другой модуль / контроллер / действие, если хотите.
В этом случае в модуле User у вас будет тот User_UserController, который имеет readAction (); В этом действии вы можете получить идентификатор с:
$userId = $this->_getParam('user-id');
Схожий, если вам это нужно, вы можете получить имя.
$userName = $this->_getParam('user-name');
В скрипте вида вы можете сгенерировать URL для этого маршрута с помощью:
<?php echo $this->url(array('user-id' => 1234, 'user-name' => 'John Smith'), 'user', true); ?>
Обратите внимание на параметр 'user', который указывает маршрутизатору использовать маршрут "user", который мы определили ранее.