codeigniter中的嵌套控制器

时间:2018-04-14 16:40:35

标签: php codeigniter codeigniter-3

我正在开发一个具有多种类型的用户角色和许多功能的大型Codeigniter应用程序。但我无法创建嵌套控制器。因此,管理我的代码变得非常困难。

我的目录结构就像

>controllers(main directory)
>>controller1,
>>controller2(Inside main directory)
>>>subDirectory(inside mainDirectory)
>>>>nestedController(inside subDirectory)

我的控制器代码如下:

  <?php

    defined('BASEPATH') OR exit('No direct script access allowed');

    class nestedControllerName extends 
     public function __construct(){

       parent::__construct();

       //code for construct & some helper functions loaded here
    }

    public function index(){

        echo "test output to check if the nested function is working!";
    }

}

当我在线阅读时,我尝试了多种路线配置:

我试过的路线示例如下:

//attempt 1
  $route['subDirectory']= 'subDirectory/nestedControllerName';

//attempt 2
  $route['subDirectory/nestedControllerName']=  
  'subDirectory/nestedControllerName';

我还尝试过上限和封顶,更改目录名称以及所有不同类型的点击和试用。但没有任何效果。

现在我正在使用控制器而不嵌套它们。哪个工作正常,但维护起来很麻烦。(控制器太多了。)

我在这个网站上看过类似的帖子,但他们都有几乎相同的解决方案,但我无法从这些帖子中找出任何解决方案。

1 个答案:

答案 0 :(得分:-1)

我从我的一位朋友那里得到了答案。在使用嵌套控制器或控制器时,我们必须遵循以下给定的规则

  • 目录名称和控制器都必须以大写字母
  • 开头 在routes.php文件中
  • 必须有子目录的路由集
  • 请求网址必须与路由文件
  • 中指定的路由相同

在我的情况下,这是由于htaccess文件。当我从http切换到https时,我添加了一些引起这种麻烦的代码