【问题标题】:How to check if Controller already exists when already configured route using Codeigniter?已使用 Codeigniter 配置路由时如何检查控制器是否已存在?
【发布时间】:2012-03-28 06:25:49
【问题描述】:

在我的网站上,我像这样从数据库中动态加载内容

e.g mysite.com/about-us   

为此,数据库中有一个条目,因此它将加载“关于我们”的内容并仅使用“页面”控制器打印它。

为此,我在 routes.php 中添加了以下配置

$route[':any'] = "page";

但是假设我已经有一个名为“about-us”的控制器并且我想加载它而不是数据库中的那个,我该怎么做?

【问题讨论】:

    标签: php codeigniter content-management-system routes


    【解决方案1】:

    一个平稳的解决方案是使用 error/missing_page 控制器并将其指向config/routes.php

    然后它会首先自动选择所有现有的控制器,然后是那个控制器。

    如果在数据库中没有找到记录,也可以拨打show_404()

    这允许您创建新的控制器,而无需将所有控制器都指向路由文件。

    Read about 404 override here

    【讨论】:

    • 太棒了,这是快速解决方案
    【解决方案2】:

    你需要添加这个

    $route['about-us'] = "aboutus";
    $route['about-us/(:any)'] = "aboutus/$1";
    

    之前

    $route[':any'] = "page";
    

    由于CI路由不是贪心的,所以它在找到about-us控制器后不会检查页面控制器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多