【问题标题】:Problems with creating subfolders in CodeIgniter 3 HMVC在 CodeIgniter 3 HMVC 中创建子文件夹的问题
【发布时间】:2018-09-26 02:10:15
【问题描述】:

我有一个项目包含几个子文件夹,例如:

  1. client/auth/login = 模型/视图/控制器
  2. client/auth/signup = 模型/视图/控制器
  3. admin/signin = 模型/视图/控制器

我这样设置路线:

$route['default_controller'] = "admin/signin/signin";
$route['admin/sigin'] = "admin/sigin/signin/index";
$route['admin/(:any)'] = "admin/sigin/signin/";
$route['client/auth'] = "auth/login/login";

这些路由不起作用,显示 CodeIgniter 404 错误页面。

【问题讨论】:

  • 你试过用 index.php 在 url http://www.example.com/index.php/admin/sigin
  • 是的,我试过了..但它不起作用...它显示 404 错误
  • 我看到你不见了$1这里$route['admin/(:any)'] = "admin/sigin/signin/$1";
  • 我添加了 $1.. 仍然无法正常工作
  • 你能拍下你的模块文件夹的快照吗?

标签: php codeigniter codeigniter-3 hmvc


【解决方案1】:
$route['default_controller'] = "admin/signin/signin";
$route['admin/signin'] = "admin/signin/signin/index";
$route['admin/(:any)'] = "admin/signin/signin/$1";
$route['client/auth'] = "auth/login/login";

修正了上面的错字。 而且我认为您的文件结构不正确。我使用 CI2,不确定模块在 CI3 中如何工作。但是模块 'forgot_password' 和 'signin' 会使用相同的模型,对吗?为什么将它们放在单独的文件夹/模块中?这样,当您更改 User 模型时,您必须在所有模块中的每个 User 模型中进行更改(除非您在这种情况下不需要它,但我仍然不会冒险构建我的应用程序那个)

- modules
    - Admin
        - controllers
            - user.php // Will have methods like signin(), add(), view(),...
    - Client
        - controllers
            - auth.php // Will have methods like signin(), signout(), ...
        - models // This will hold models you don't need in Admin module
                 // other models should be in the default models folder, so each module will be able to access them.

路线如下所示:

$route['default_controller'] = "admin/user/signin"; // admin module, user controller, signin method
$route['admin/signin'] = "admin/user/signin";
$route['admin/(:any)'] = "admin/content/$1"; // admin module, content controller, (:any) method (content being an example, I have it in my CMS project)
$route['client/auth'] = "client/auth/login"; // client module, auth controller, login method

【讨论】:

  • 感谢您的建议..它确实提供了丰富的信息..再次感谢..但是您编写的路线不起作用
  • 我认为这与您的文件夹结构的设置方式有关。
  • 我上传了我的文件夹结构快照,我认为我的路线设置是正确的
  • 问题是 CodeIgniter 可能不支持你的文件夹结构,你能把控制器文件夹中哪些文件的截图贴出来吗?
  • 这是我的模块的完整结构i.stack.imgur.com/RosRr.jpg
【解决方案2】:

我解决了..在配置文件中,我添加了以下代码行;

$config['modules_locations'] = array(
    APPPATH.'modules/'                   => '../modules/',
    APPPATH.'modules/admin/' => '../modules/admin/', 
    APPPATH.'modules/client/' => '../modules/client/', 
);

它就像一个魅力..:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 2011-10-10
    • 1970-01-01
    相关资源
    最近更新 更多