1

我的 CodeIgniter Web 应用程序必须分为三大部分:

  1. 管理员 - 无限制地编辑、删除和创建数据
  2. 用户 - 只读
  3. 合作伙伴 - 对编辑数据的访问受限,不能删除,不能创建

所有部分相互独立,但使用相同的数据库。

我的问题是 - 将它们分开的最佳方法是什么?

我看到两种可能的方法:

  1. 控制器目录中的子文件夹。不好 - 如果我创建一个 Admin 子文件夹,我将无法执行类似 admin/events/controller_name.php 或 admin/places/controller_name.php 之类的操作。如果没有这样的分离,那将是一团糟。
  2. 子域上的单独应用程序(admin.sitename.com/、partner.sitename.com/)。也不是很好 - 我将不得不复制所有模型(在所有情况下都是相同的)、库等。

有没有更好的方法来做到这一点?如果我能以某种方式使用不同的控制器集并且只使用一组模型/库,那就太好了。

4

2 回答 2

1

每个单独的控制器库。

  • 用户 - 普通控制器
  • 管理员 - admin_controller 扩展控制器
  • 合作伙伴 - partner_controller 扩展控制器

在这里阅读:http: //philsturgeon.co.uk/blog/2010/02/CodeIgniter-Base-Classes-Keeping-it-DRY

控制器和视图中的单独文件夹以保持功能分开。使用您的路线对您到达每个路线的方式进行排序。

于 2012-12-09T15:03:41.793 回答
0

domain.com/admin/page/231

domain.com/user/page/231

domain.com/partner/page/231

你甚至不必路由它——会自动转到不同的类——它们可以共享相同的模型。还 - 通过调用方法(可能在模型中)在类构造函数中进行登录验证,例如 IF $this->login_model->verifyAdmin() 这样您就可以稍后更改 verifyAdmin() 的机制,而您不会必须更改类构造函数中的任何内容。

于 2012-12-09T20:01:40.810 回答