CodeIgniter:分离管理员,用户和合作伙伴网站

时间:2012-12-09 14:42:46

标签: php codeigniter codeigniter-2

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

  1. 管理员 - 无限制地访问编辑,删除和创建数据
  2. 用户 - 只读
  3. 合作伙伴 - 限制访问编辑数据,不删除,不创建
  4. 所有部分彼此独立,但使用相同的数据库。

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

    我看到两种可能的方式:

    1. 控制器目录中的子文件夹。不好 - 如果我创建一个Admin-subfolder,我将无法执行类似admin / events / controller_name.php或admin / places / controller_name.php的操作。如果没有这样的分离,那将是一团糟。
    2. 子域名上的独立应用程序(admin.sitename.com /,partner.sitename.com /)。也不是很好 - 我将不得不复制所有模型(在所有情况下都相同),库等。
    3. 有没有更好的方法来做到这一点?如果我能以某种方式使用不同的控制器组和一组模型/库,那将是非常好的。

2 个答案:

答案 0 :(得分:1)

为每个人分开控制器库。

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

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

控制器和视图中的单独文件夹以保持功能分离。使用您的路由来对每个路由进行排序。

答案 1 :(得分:0)

domain.com/admin/page/231

domain.com/user/page/231

domain.com/partner/page/231

你甚至不必路由它 - 将自动转到不同的类 - 可以共享相同的模型。另外 - 在类构造函数中进行登录验证,通过调用方法(可能在模型中),如IF $ this-> login_model-> verifyAdmin(),这样您可以在以后更改verifyAdmin()的机制,并且你不必在类构造函数中改变任何东西。