【问题标题】:CodeIgniter - Select controller based on databaseCodeIgniter - 根据数据库选择控制器
【发布时间】:2015-05-11 10:15:03
【问题描述】:

我正在使用 Code Igniter 3.0.0 版构建一个简单的 CMS

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

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

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

【问题讨论】:

  • 你的问题很宽泛,也很不清楚。请把它缩小到具体的东西。确切的控制器由第一个 URL 段确定……这可以通过使用自定义路由(在配置中)进一步调整。否则,the docs very clearly explain the MVC concept... 阅读并关注the tutorial。另外仅供参考,3.0 已经发布,所以不需要使用开发版本。
  • 好的,我将重写它,因为似乎所有答案都被误解了。最新版本是 3.0.1-dev - 我将更新到
  • dev 版本是“尚未正式发布的开发者版本”。来自codeigniter.com 的最新官方版本就是3.0.0
  • 问题被重写。希望它更有意义。此外,我已经更新到 3.0.0 版

标签: php codeigniter model-view-controller


【解决方案1】:

如果您查看网址 /about/who-we-are/ about 是控制器,who-we-are 是控制器中加载一个或多个视图的函数。

/locations/stores/ 也一样 函数存储在控制器位置。

阅读文档,它会很容易理解。 http://www.codeigniter.com/user_guide/overview/mvc.html

【讨论】:

  • 感谢您的回复,但是在示例中,'about' 不是控制器,它是用户设置的页面 URL。 URL 映射到的控制器在数据库中指定
  • @anotheruser1488182,那么你需要编写一个可以检索并重定向到这个URL的Controller。
【解决方案2】:

我很确定配置路线是您的答案:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 2014-01-11
    • 1970-01-01
    相关资源
    最近更新 更多