【问题标题】:CodeIgniter: separating admin-, user- and partner sitesCodeIgniter:分离管理员、用户和合作伙伴站点
【发布时间】:2012-12-09 14:42:46
【问题描述】:

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

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

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

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

我看到了两种可能的方式:

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

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

【问题讨论】:

    标签: php codeigniter codeigniter-2


    【解决方案1】:

    为每个单独的控制器库。

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

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

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

    【讨论】:

      【解决方案2】:

      domain.com/admin/page/231

      domain.com/user/page/231

      domain.com/partner/page/231

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-15
        • 1970-01-01
        • 1970-01-01
        • 2019-09-02
        • 2013-04-29
        相关资源
        最近更新 更多