我正在使用带有HMVC Modular扩展的Codeigniter,并有一个用于管理网站内容的后端CMS区域。我将基本URL +“admin”(http://localhost/cms/admin)路由到带有前缀“admin _”的控制器方法。
e.g. function admin_index() {...}
这是我的路线:
$route['admin/([a-zA-Z]+)/(:any)'] = "$1/admin_$2"; $route['^admin/(:any)(/)?'] = "$1/admin_index"; $route['^admin(/)?'] = "dashboard/admin_index"; $route['admin/logout'] = "login/admin_logout";
使用HMVC时,它现在无法正确路由。以下是发生的事情:
URL: http://localhost/cms/admin/faqs Directory: modules/faqs/controllers/faqs - index method -- here is where it breaks -- URL: http://localhost/cms/admin/faqs/categories Directory: modules/faqs/controllers/faqs - categories method (does not exits) Desired: modules/faqs/controllers/categories - index method
如何在维护网站的“管理员”时使用HMVC?
答案 0 :(得分:2)
通过将前端和后端功能放在同一控制器中,您的生活有点过于棘手。请查看我在how to create an admin structure in CodeIgniter上的文章。
答案 1 :(得分:0)
我正在研究类似的东西,并像你一样实施了交换(第三种选择)并且工作正常。
我试图实现一个前端控制器来处理admin部分,并运行带有HMVC模块的模块:: run()并按我的意愿缓冲输出,但是我遇到了另一个问题,你将不得不更改URI从/到_或其他方案的方案,因为你不能将模块段作为参数发送到你的控制器,因为CI依赖于它的路由机制的“/”。
唯一的方法是模仿Phil建议的管理部分,但还有另一个选项可以控制使用您的CMS实施的代码。
您可以扩展CI_Controller(或MX_Controller,以防您使用HMVC)并添加一个Admin_Controller,它将处理您的逻辑并控制哪些模块可以执行。