【问题标题】:codeigniter extra url segmentscodeigniter 额外的 url 段
【发布时间】:2011-07-13 18:09:46
【问题描述】:

我正在为客户制作网站,并决定使用代码点火器。

该网站基本上有两个后端,一个用于设计师,一个用于销售团队。所以登录后,用户将被重定向到任一

  • mysite.com/sales/
  • mysite.com/design/

例如,销售团队可以查看订单、容器、产品,因此我需要一个控制器来处理这些。

  • mysite.com/sales/orders/

销售人员需要能够查看、编辑、删除某些订单...

  • mysite.com/sales/orders/vieworder/235433

基本上我的问题是我没有足够的 url 段来玩。

我对解决问题的想法

  • 删除订单、容器、产品类,并将它们的所有方法设为销售类的方法,尽管这意味着需要大量方法并加载所有模型,所以这似乎毫无意义。

  • 删除销售/设计师类并根据会话数据中存储的用户类型控制每种用户可以访问的内容。

  • 有一个额外的 url 段的方法?

感谢您的任何建议,我只是不想在项目投入 3 周后意识到我从一开始就错了!

【问题讨论】:

  • 对不起,“你怎么”错过了“额外的 url 段”?什么是“缺失”?
  • 嗨。你引用我的话说“失踪”,虽然我没有?我只需要一种方法,允许销售团队访问某些类及其方法,并允许设计人员访问一些相同的类,但不能访问它们的所有方法。
  • 为什么不通过数据库给用户某种访问权限,并在用户/设计者缺少权限时阻止函数执行?
  • 这是我的想法之一,尽管我不确定这是否是最好的方法。那这是最好的方法吗?
  • 当然可以,您应该如何做到不一样,又不竭尽全力? :)

标签: codeigniter codeigniter-url


【解决方案1】:

使用文件夹。

如果您在 /application/ 中创建一个名为 sales 的子文件夹,您可以在其中放置不同的控制器:

/application/
    /sales/
      orders.php /* Controller */
    /design/

然后在orders.php 中你将把你的vieworders($id) 方法等等,你将能够使用domain.com/sales/orders/vieworders/id 访问它。

您还可以在/models//views/ 中创建子文件夹来组织您的文件。

现在,访问控制是不同的,它更多地取决于您使用的身份验证系统。

【讨论】:

    【解决方案2】:

    给用户/设计者一个权限,比如用户表中的一列,在函数开始时检查用户的权限,然后阻止或执行。

    这正是我要做的方式。

    【讨论】:

      【解决方案3】:

      看来你应该看看路由类。可能是一个肮脏的解决方案,但是将 sales/(:any) 重新路由到 sales_$1 之类的东西意味着您将使用 sales_orders 之类的名称制作控制器。 设计部分也一样。

      (仅供参考:$routing['sales/(:any)'] = 'sales_$1'; 应该可以解决问题;请参阅 application/config/routing.php)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-10
        • 1970-01-01
        • 1970-01-01
        • 2012-10-30
        • 1970-01-01
        • 2017-05-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多