Codeigniter使子目录控制器工作

时间:2012-02-01 15:19:15

标签: codeigniter controller

我无法让页面加载我想要的控制器。

例如,我希望我的网站加载为localhost / sitename / catergory1 / catergory2,其中catergory 1是它自己的控制器,2是一个方法。所以我尝试将其添加到我的routes.php:

$route['catergory1'] = 'catergory1/cat1';

将我的控制器文件设置为:
-Controller
    -Home.php
-catergory1< - 子文件夹
-cat1.php
我认为会导致codeigniter在catergory 1文件夹中加载控制器'cat1',但是当我转到localhost / sitename / catergory1时,它只会加载我的默认控制器'home'。我已经尝试将它放在routes.php的uri路由和保留路由部分,但它仍然无法正常工作。这可能是非常简单的事情,但对此我是新手。

控制器本身只是因为它与它们有关:

class Home extends CI_Controller {  
    function index() {  
        $this->load->view('home');  
    }
}

Cat1控制器:

class Cat1 extends CI_Controller{  
    function index() {  
        $this->load->view('cat1');  
    }  
}

我只是愚蠢而且错过了一些简单的事情吗? 感谢。

1 个答案:

答案 0 :(得分:6)

你有category1顺便说一句的拼写错误。

如果我正确地遵循了这个结构:

\ controllers
 - home.php
 \ category1 \
  - cat1.php

如果是这样,你会对自己的路线感到困惑:

$route['category1 '] = 'category1/cat1/index';

需要定义方法index,这是基于你的'cat1.php'文件:

class Cat1 extends CI_Controller{
   function index() {
      $this->load->view('cat1');
   }
}

我写过这篇文章,因为人们通常会对CI中的路线感到困惑:
http://blog.biernacki.ca/2011/12/codeigniter-uri-routing-issue-with-controller-folders/