Php CodeIgniter-基于数据库的控制器选择

Php CodeIgniter-基于数据库的控制器选择,php,codeigniter,model-view-controller,Php,Codeigniter,Model View Controller,我正在使用CodeIgniter版本3.0.0构建一个简单的CMS 该站点的URL都可由用户自定义,因此不遵循/controller/method/parameter-1/parameter-2/的标准MVC结构。相反,所有前端流量都被定向到PublicController的索引方法。此方法在数据库中搜索当前URL以返回正确的页面以及页面类型。每个页面类型对应一个控制器 我如何在不重定向的情况下从PublicController调用该控制器 我无法使用redirect()方法,因为这会更改浏览器

我正在使用CodeIgniter版本3.0.0构建一个简单的CMS

该站点的URL都可由用户自定义,因此不遵循/controller/method/parameter-1/parameter-2/的标准MVC结构。相反,所有前端流量都被定向到PublicController的索引方法。此方法在数据库中搜索当前URL以返回正确的页面以及页面类型。每个页面类型对应一个控制器

我如何在不重定向的情况下从PublicController调用该控制器


我无法使用
redirect()
方法,因为这会更改浏览器窗口中的URL,并导致不需要的其他页面请求。

如果您查看URL/about/who we's/ “关于”是控制器,“我们是谁”是控制器中加载一个或多个视图的函数

对于/地点/商店也一样/ 这些功能存储在控制器位置中

阅读文档将很容易理解。

我非常确定,配置路由是您的答案:

// routes.php
$route['(:any)'] = "PublicController/index/$1";

// PublicController.php
public function index()
{
    var_dump(func_get_args());
}

感谢您的回复,但是在示例中,“about”不是控制器,而是用户设置的页面URL。URL映射到的控制器在中指定database@anotheruser1488182,然后您需要编写一个控制器,可以检索并重定向到此URL。您的问题非常广泛,也非常不清楚。请把范围缩小到一些具体的事情上。确切的控制器由第一个URL段决定。。。这可以通过使用自定义路由(在配置中)进行进一步调整。否则。。。阅读并跟随。仅供参考,3.0已经发布,因此没有必要使用开发版本。好的,我将重写它,因为似乎所有的答案都被误解了。最新版本是3.0.1-dev-I,我将更新到
dev
版本是“尚未正式发布的开发人员版本”。codeigniter.com的最新官方版本只是
3.0.0
。问题被重写了。希望它更有意义。此外,我已经更新到3.0.0版