CodeIgniter HMVC如何定义一个子模块 User(User Logged)。

3

我是CodeIgniter和HMVC的新手,正在尝试制作一个Web应用程序。 我定义的结构如下:

-Modules
   -User
      -Controllers
      -Views
      -Models
   -Orders
      -Controllers
      -Views
      -Models
   -Bills
      -Controllers
      -Views
      -Models
   -Payments
      -Controllers
      -Views
      -Models
     ...

我收到的结构是:
  http://localhost/site/Orders/.. or http://localhost/site/bills/..

我想要的是基于登录用户的结构,就像这样。
  http://localhost/site/<currentuser>/Orders/
                or
  http://localhost/site/<iduser>/Orders/

我该如何获得这个?我已经阅读了很多信息,但不知道如何实现。


尝试阅读Hooks。从会话中获取当前用户。也许'post_controller_constructor'钩子是您需要的。 - John
1个回答

0

我认为 "http://localhost/site/" 是你的网站基本URL。


CodeIgniter的路由模式如下:

http://localhost/site/ControllerName/MethodName/Parameters/...


你想让你的URL调用看起来像这样:
http://localhost/site/iduser/ControllerName/MethodName/Parameters/...


你可以通过在CodeIgniter核心中使用下面的小技巧来实现。


  1. 在文本编辑器中打开system/core/router.php文件。
  2. 转到第264行....函数_validate_request($segments)
  3. 将$segments[0]替换为$segments[1]

    或者

    在第270行添加以下代码

    $x=$segments; $a=1; for($i=0;$i<(count($segments)-1); $i++) { $segments[$i]=$x[$a]; $a++; }


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接