【问题标题】:How to use HMVC for Codeigniter 2.1.* when index.php is moved?移动 index.php 时如何将 HMVC 用于 Codeigniter 2.1.*?
【发布时间】:2014-05-29 20:19:52
【问题描述】:

我正在尝试使用我的 index.php 在网站根目录中的“公共”文件夹/Applications/MAMP/htdocs/public/ 中构建一个 CodeIgniter 应用程序。我已经设置我的虚拟主机等指向这个 index.php 文件。我想采用基于模块的方法,因此最终使用了 Modular Extensions - HMVC 。我把核心文件和第三方文件放在了相应的文件夹中,并在应用程序文件夹中创建了一个modules文件夹。然后我继续在模块文件夹中创建一个“登录”模块以及所需的“控制器/登录.php”、“模型”和“视图”

class Login extends MX_Controller{
    public function index()
    {
        log_message('error','reached module');
    }
}

现在当我尝试加载 http://localhost/login 时,我在 apache_error.log 中得到一个错误日志,说

File does not exist: /Applications/MAMP/htdocs/public/login

http://localhost 可以正常显示 CodeIgniter 的欢迎屏幕 点火器

这是路径结构:

application/modules
└── login
    ├── config
    │   └── routes.php
    ├── controllers
    │   └── login.php
    └── views
        └── login.view.php

modules/login/config/routes.php 的内容

<?php
$route['login'] = 'login';

httpd-vhosts 配置:

<VirtualHost *:80>
    DocumentRoot "/Applications/MAMP/htdocs/public"
    SetEnv APP_ENV development

    <Directory "/Applications/MAMP/htdocs/public">
        Options Indexes FollowSymLinks Includes execCGI
        AllowOverride All
        Order Allow,Deny
        Allow From All
    </Directory>
</VirtualHost>

【问题讨论】:

  • 难道你不应该使用 modules::run('module/login', $params, $...) 而不是 $this->load->view 吗?
  • 尝试一些东西 $application_folder = '../application';只是一个想法可能会奏效,想想你的应用程序文件夹在哪里。
  • 已更新 $application_folder .. 否则它将无法从 publicfolder 内部工作
  • @Bonatoc - 也尝试过...我在 index() 中添加了一条日志消息,但它从未到达那里..
  • 是模块文件夹中的控制器 modules/folder/file 在路由中可能还需要添加 $route['controllername'] "folder/controllername/index";要让默认控制器或路由在子文件夹中工作,只需在最后添加索引。必须在应用程序的模块文件夹中。

标签: codeigniter mamp codeigniter-hmvc


【解决方案1】:

我终于设法让我的代码正常工作。围绕它写了一个关于设置的小教程。可以参考here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    相关资源
    最近更新 更多