0

我正在使用带有 HMVC Modular 扩展的 Codeigniter,并且有一个用于管理网站内容的后端 CMS 区域。我将基本 URL +“admin”(http://localhost/cms/admin)路由到前缀为“admin_”的控制器方法。

例如函数 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,它现在无法正确路由。这是发生的事情:

网址:http://localhost/cms/admin/faqs
目录:modules/faqs/controllers/faqs - 索引方法
--
这是它破裂的地方
--
网址:http://localhost/cms/admin/faqs/categories
目录:modules/faqs/controllers/faqs - categories 方法(不退出)
所需:模块/常见问题/控制器/类别 - 索引方法

如何在维护网站的“管理员”的同时使用 HMVC?

4

2 回答 2

2

通过将前端和后端功能放在同一个控制器中,您的生活变得有些棘手。看看我关于如何在 CodeIgniter 中创建管理结构的文章。

于 2010-02-10T09:47:45.630 回答
0

我正在做类似的事情,并像你一样实现了交换(第三个选项)并且效果很好。

我尝试实现一个前端控制器来处理管理部分,并使用 HMVC modules::run() 运行模块并按照我的意愿缓冲输出,但后来我遇到了另一个问题,你必须从 / 更改 URI 方案到 _ 或其他东西,因为您将无法将模块段作为参数发送到您的控制器,因为 CI 依赖于“/”作为它的路由机制。

唯一的方法是按照 Phil 的建议模拟管理部分,但是还有另一个选项可以控制任何使用您的 CMS 的人实现的代码。

您可以扩展 CI_Controller(或 MX_Controller,以防您使用 HMVC)并添加一个 Admin_Controller 来处理您的逻辑并控制模块可以做什么。

看看这个CodeIgniter 基类:保持干燥

于 2012-12-07T09:32:29.200 回答