Zend Mod переписать ИЛИ маршрутизации
Я использую Zend Framework в своем веб-приложении. У меня есть следующий URL: domain/user/user/username
, Где первый user
это контроллер в default
модуль. второй user
это GET
переменная. username
является значением этой переменной. Все хорошо. Но для удобства использования я хочу иметь следующий URL: domain/user/username
, Я знаю, что по правилам Zend GET это должен быть мой первый вариант. Но, может быть, я могу сделать это с помощью переписывания модов или Zend_Route? Помоги мне, пожалуйста.
Заранее спасибо.
2 ответа
Создайте /application/configs/routes.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<routes>
<user>
<route>user/:username/*</route>
<defaults>
<module>default</module>
<controller>user</controller>
<action>view</action>
<username>0</username>
</defaults>
</user>
</routes>
Затем в Bootstrap.php
:
public function _initRouter()
{
$front = Zend_Controller_Front::getInstance();
$router = $front->getRouter();
$config = new Zend_Config_Xml(dirname(__FILE__) . '/configs/routes.xml');
$router->addConfig($config);
return $router;
}
Вы также можете сделать то же самое многими другими способами, например, в application.ini
,
В вашем application.ini добавьте:
resources.router.routes.article.type = "Zend_Controller_Router_Route"
resources.router.routes.article.route = "user/:username/*"
resources.router.routes.article.defaults.module = "default"
resources.router.routes.article.defaults.controller = "user"
resources.router.routes.article.defaults.action = "view"
resources.router.routes.article.reqs.username = "guest"
и я предлагаю вам взглянуть на:
http://framework.zend.com/manual/en/zend.controller.router.html