使用Codeigniter 2.1获取404 - HMVC 5.4

时间:2012-08-22 08:44:02

标签: php codeigniter codeigniter-2 hmvc

这是我的第一次hmvc尝试,它出错了......我正试图通过不同的模块分离我的站点区域。我的意图是使用ion_auth控制hmvc的访问。这是我的初始结构:

/application
  /modules     <-- hmvc
    /public_zone
       /controller
        public_zone.php
       /view
        ...
    /private_zone
     ...

所以,要做到这一点(在core和third_party文件夹上安装hmvc)我试图将'default_controller'设置为'public_zone'控制器。 他的任务是加载根页面('localhost'),但* 它会返回404错误。 *

这是我的public_zone.php文件:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Public_zone extends MX_Controller {

   public function index()
    {
      $this->load->view('include/header');
      $this->load->view('frontpage');
      $this->load->view('include/footer');
    }

}

也许问题出在routes.php(application / config / routes.php)文件上?我会试试这个:

$route['default_controller'] = "public_zone"; 
$route['404_override'] = '';

任何人都可以告诉我我做错了什么?我肯定误解了一些hmvc概念......但事实是我不知道为什么它不起作用:(

1 个答案:

答案 0 :(得分:1)

首先,保持CI结构的完整性非常重要。 所以你需要结构:

/application
    /controllers
        public_zone.php
    /views
        frontpage.php
        /include
           header.php
           footer.php
    /models

当然,您还需要CI附带的其他文件夹。

其次,您需要对控制器进行一些更改才能使其正常工作。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Public_zone extends CI_Controller {

 public function __construct()
 {
   parent::__construct();
 }

 public function index()
 {
   $this->load->view('include/header');
   $this->load->view('frontpage');
   $this->load->view('include/footer');
 }

}

在此更改后,它应该工作:) 另请务必阅读用户指南:http://codeigniter.com/user_guide/

您可能需要一些时间阅读,但稍后它会为您节省大量时间。

祝你好运!