2013-05-04 27 views
0

CI查找Segment[1]对于控制器(在控制器DIR)和Segment[2]为方法。现在,我有业务应用程序,它需要的是我不想CI看或用武力去控制器​​目录加载但我有这样的事情"domainURL/module_identifier_id/controller/method/"specific要求。笨芯改变

在这里,每个请求将连同其相关联的模块的标识符ID来将有完整的模块的配置,并存储在DB的其它数据(controller files, module location where it was uploaded, all menus and their URLs which will have same URL mechanism which we want to design for developers to develop modules and upload)。

我们需要得到此ID并使用它来获取培训相关记录,并点CI从我们所希望的负载控制器,确实休息了每一件事情需要进行的工作,因为它是方法等。

我希望你明白我们在寻找什么,我们有我们自己的主控制器类型文件,其中所有的请求将与上述的定制协议一起提供,开发人员将通过一切手段跟随它,必须有模块标识,然后再控制,方法等等

让我知道如果你必须要清除任何查询?

+0

怎么样的,而不是做核心的变化简单地做一个URL重写在Web服务器从'/ //''到/ /?模块= '? – 2013-05-04 14:27:25

+0

CI还可以本地查找控制器子文件夹的Segment [1]',控制器文件的Segment [2]',Method的Segment [3]'。 – Aurel 2013-05-04 16:47:29

回答

0

我想我只想用路线是:

$route[(:any)/(:any)/(:any)] = '$2/$3/$1'; 

这应该只是重新安排你细分你想要的方式,而不是更换整个本地路由系统的工作方式。

+0

以您定义的方式避免核心更改。我的第一步是为我的控制器提供每个请求。现在接下来我正在寻找,如果我们有这种URL请求“domain/identifier_id/controller/method /”,那么针对(:any)定义的主控制器需要这样关注它:它需要看“ identifier_id“到数据库中,获取DIR路径,并在”identifier_id“后面扩展/加载URL中请求的”controller“&”method“,请注意我期望模块的控制器像普通模式一样工作。让我知道你是否有任何疑问。 – Umer 2013-05-09 07:28:57

+0

我不确定我完全关注,但使用带有__remap()的MY_Controller可以解决您的问题。看看http://codebyjeff.com/blog/2012/11/ci-_remap-function-the-friend-you-never-knew-you-had看看它是如何工作的,如果你还没有用过之前 – jmadsen 2013-05-09 08:08:41