codeigniter额外的网址段

时间:2011-07-13 18:09:47

标签: codeigniter codeigniter-url

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

该网站基本上有两个后端,一个用于设计人员,另一个用于销售团队。因此,登录后,用户将被重定向到

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

例如,销售团队可以查看订单,容器和产品,因此我需要一个控制器。

  • mysite.com/sales/orders /

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

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

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

我对解决问题的看法

  • 删除订单,容器,产品类并将其所有方法作为销售类的方法,尽管这意味着大量方法并加载所有模型,因此它看起来毫无意义。

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

  • 一种额外网址段的方式?

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

3 个答案:

答案 0 :(得分:2)

使用文件夹。

如果您在名为/application/的{​​{1}}中创建子文件夹,则可以在其中放置不同的控制器:

sales

然后在/application/ /sales/ orders.php /* Controller */ /design/ 中,您将使用orders.php方法,等等,您将能够使用vieworders($id)访问它。

您还可以在domain.com/sales/orders/vieworders/id/models/中制作子文件夹来整理文件。

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

答案 1 :(得分:0)

为用户/设计者提供权限,例如用户表中的列,在函数开头检查用户的权限,然后阻止或执行它。

这将是我的确切方式。

答案 2 :(得分:0)

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

(仅供参考:$routing['sales/(:any)'] = 'sales_$1';应该这样做;请参阅application / config / routing.php)。