我在ini文件中设置Zend_Routing时遇到问题。虽然这些路线是在Bootstrap.php中定义的,但一切都很顺利。但是我决定将路由定义移到单独的文件中,因为它们的数量越来越多。所以我在/ configs文件夹中创建了一个route.ini文件,并在那里定义了路由。所有路线都是这样的:
;login routes.login.route = "login" routes.login.defaults.controller = "auth" routes.login.defaults.action = "login" routes.lang_login.route = ":lang/login" routes.lang_login.defaults.controller = "auth" routes.lang_login.defaults.action = "login" routes.lang_login.reqs.lang = "^[a-z]{2}$" rotues.logout.route = "logout" routes.logout.defaults.controller = "auth" routes.logout.defaults.action = "logout" rotues.lang_logout.route = ":lang/logout" routes.lang_logout.defaults.controller = "auth" routes.lang_logout.defaults.action = "logout" routes.lang_logout.reqs.lang = "^[a-z]{2}$" ;regulation routing routes.regulation_edition.route = "regulations/:edition" routes.regulation_edition.defaults.controller = "regulations" routes.regulation_edition.defaults.action = "show" routes.regulation_edition.reqs.edition = "^[0-9]{4}-[0-9]{4}$" routes.lang_regulation_edition.route = ":lang/regulations/:edition" routes.lang_regulation_edition.defaults.controller = "regulations" routes.lang_regulation_edition.defaults.action = "show" routes.lang_regulation_edition.reqs.edition = "^[0-9]{4}-[0-9]{4}$" routes.lang_regulation_edition.reqs.lang = "^[a-z]{2}$" routes.regulation_edit_edition.route = "regulations/edit/:edition" routes.regulation_edit_edition.defaults.controller = "regulations" routes.regulation_edit_edition.defaults.action = "edit" routes.regulation_edit_edition.reqs.edition = "^[0-9]{4}-[0-9]{4}$" routes.lang_regulation_edit_edition.route = ":lang/regulations/edit/:edition" routes.lang_regulation_edit_edition.defaults.controller = "regulations" routes.lang_regulation_edit_edition.defaults.action = "edit" routes.lang_regulation_edit_edition.reqs.edition = "^[0-9]{4}-[0-9]{4}$" routes.lang_regulation_edit_edition.reqs.lang = "^[a-z]{2}$" ;applications rotues.application.route = "application/:id" routes.application.defaults.controller = "applications" routes.application.defaults.action = "show" routes.application.reqs.id = "^[0-9]+$" rotues.lang_application.route = ":lang/application/:id" routes.lang_application.defaults.controller = "applications" routes.lang_application.defaults.action = "show" routes.lang_application.reqs.lang = "^[a-z]{2}$" routes.lang_application.reqs.id = "^[0-9]+$" rotues.edit_application.route = "application/edit/:id" routes.edit_application.defaults.controller = "applications" routes.edit_application.defaults.action = "edit" routes.edit_application.reqs.id = "^[0-9]+$" rotues.lang_edit_application.route = ":lang/application/edit/:id" routes.lang_edit_application.defaults.controller = "applications" routes.lang_edit_application.defaults.action = "edit" routes.lang_edit_application.reqs.id = "^[0-9]+$" routes.lang_edit_application.reqs.lang = "^[a-z]{2}$" rotues.delete_application.route = "application/delete/:id" routes.delete_application.defaults.controller = "applications" routes.delete_application.defaults.action = "delete" routes.delete_application.reqs.id = "^[0-9]+$" rotues.lang_delete_application.route = ":lang/application/delete/:id" routes.lang_delete_application.defaults.controller = "applications" routes.lang_delete_application.defaults.action = "delete" routes.lang_delete_application.reqs.id = "^[0-9]+$" routes.lang_delete_application.reqs.lang = "^[a-z]{2}$" ;user routes.user.route = "user/:id" routes.user.defaults.controller = "users" routes.user.defaults.action = "show" routes.user.reqs.id = "^[0-9]+$" routes.lang_user.route = ":lang/user/:id" routes.lang_user.defaults.controller = "users" routes.lang_user.defaults.action = "show" routes.lang_user.reqs.id = "^[0-9]+$" routes.lang_user.reqs.lang = "^[a-z]{2}$" routes.edit_user.route = "user/edit/:id" routes.edit_user.defaults.controller = "users" routes.edit_user.defaults.action = "edit" routes.edit_user.reqs.id = "^[0-9]+$" routes.lang_edit_user.route = ":lang/user/edit/:id" routes.lang_edit_user.defaults.controller = "users" routes.lang_edit_user.defaults.action = "edit" routes.lang_edit_user.reqs.id = "^[0-9]+$" routes.lang_edit_user.reqs.lang = "^[a-z]{2}$" routes.delete_user.route = "user/delete/:id" routes.delete_user.defaults.controller = "users" routes.delete_user.defaults.action = "delete" routes.delete_user.reqs.id = "^[0-9]+$" routes.lang_delete_user.route = ":lang/user/delete/:id" routes.lang_delete_user.defaults.controller = "users" routes.lang_delete_user.defaults.action = "delete" routes.lang_delete_user.reqs.id = "^[0-9]+$" routes.lang_delete_user.reqs.lang = "^[a-z]{2}$" routes.promote_user.route = "user/promote/:id" routes.promote_user.defaults.controller = "users" routes.promote_user.defaults.action = "promote" routes.promote_user.reqs.id = "^[0-9]+$" routes.lang_promote_user.route = ":lang/user/promote/:id" routes.lang_promote_user.defaults.controller = "users" routes.lang_promote_user.defaults.action = "promote" routes.lang_promote_user.reqs.id = "^[0-9]+$" routes.lang_promote_user.reqs.lang = "^[a-z]{2}$" ;schools routes.edit_school.route = "school/edit/:id" routes.edit_school.defaults.controller = "schools" routes.edit_school.defaults.action = "edit" routes.edit_school.reqs.id = "^[0-9]+$" routes.lang_edit_school.route = ":lang/school/edit/:id" routes.lang_edit_school.defaults.controller = "schools" routes.lang_edit_school.defaults.action = "edit" routes.lang_edit_school.reqs.id = "^[0-9]+$" routes.lang_edit_school.reqs.lang = "^[a-z]{2}$" routes.delete_school.route = "school/delete/:id" routes.delete_school.defaults.controller = "schools" routes.delete_school.defaults.action = "delete" routes.delete_school.reqs.id = "^[0-9]+$" routes.lang_delete_school.route = ":lang/school/delete/:id" routes.lang_delete_school.defaults.controller = "schools" routes.lang_delete_school.defaults.action = "delete" routes.lang_delete_school.reqs.id = "^[0-9]+$" routes.lang_delete_school.reqs.lang = "^[a-z]{2}$"
在Bootstrap.php中,我输入以下代码
$this->bootstrap('frontController'); $router = $this->getResource('frontController')->getRouter(); $route_config = new Zend_Config_Ini(APPLICATION_PATH.'/configs/route.ini', 'production'); $router->addConfig($route_config, 'routes');
现在我去主页,即。我不会给任何控制器或动作我希望它使用默认控制器和动作,即'index / index'。这是在Bootstrap中定义路由时应用程序的工作方式。但现在,当他们在ini文件中进入主页面时会触发'application / delete'。当我删除此路由时,脚本将使用先前定义的路由。 令人惊讶的是,这些并不是最后定义的路线。我试图在route.ini文件的开头添加另一个路由,
routes.default.route = "/" routes.default.defaults.controller = "index" routes.default.defaults.action = "index"
但这没有帮助。
答案 0 :(得分:2)
您是否需要在routes
文件中添加routes.ini
部分?
[routes]
routes.login.route = "login"
routes.login.defaults.controller = "auth"
routes.login.defaults.action = "login"
; The rest of your routes...
答案 1 :(得分:0)
我设法以某种方式处理这个问题,虽然这不是真正的解决方案。首先,我重写部分应用程序,因为它不起作用(不知道为什么,网址没有创建)。在此之后,默认路由设置为注销。当我将登录和注销路由移动到Bootstrap时,一切正常。