【问题标题】:Need a controller named "directory" in codeigniter在codeigniter中需要一个名为“目录”的控制器
【发布时间】:2011-06-12 07:39:22
【问题描述】:

我需要将我的控制器命名为“目录”,这样我就可以拥有我的业务目录页面的 URL,例如 "mysite.com/directory"。 但问题是“目录”是一个预定义的 php 类,所以我不能再次声明它。它给出了错误

致命错误:无法重新声明类 目录在 C:\wamp\www\Logistica\system\application\controllers\directory.php 8号线

有没有办法可以将我的类和控制器重命名为其他名称,并且仍然在 URL 中保留“目录”?

【问题讨论】:

    标签: php url codeigniter


    【解决方案1】:

    看看CodeIgniter routing

    在您的情况下,您需要这样的路线:

    $route['directory'] = "DirectoryImplementationClass";

    【讨论】:

    • 我已经在使用 CI URL 标识符,所以我的路由类已经稍作修改。我的网址是 "mysite.com/en/directory" ,这是我的路线代码: $route['default_controller'] = "home"; $route['(\w{2})/(.*)'] = '$2'; $route['(\w{2})'] = $route['default_controller']; $route['\w{2}/directory'] = "目录";但是上面的内容仍然与我的网址不匹配。它在页面上给了我 404 错误。
    • 我已经有一段时间没有使用 CI 了,但如果我没记错的话,规则的顺序很重要。将运行第一个匹配的路线,而不是最具体的路线。所以如果 $route['(\w{2})/(.*)'] = '$2' 在 $route['\w{2}/directory'] = "Dirclass";在你的 route.php 文件中,它会寻找 directory.php 类,第二个路由永远不会被执行。
    【解决方案2】:

    您可以使用 .htaccess 更改 URL。 这意味着你的名字不是目录 那么您可以使用重写规则来更改 URL 中的名称

    参考: htaccess in codeigniter

    【讨论】:

      猜你喜欢
      • 2012-06-24
      • 1970-01-01
      • 2014-04-10
      • 2017-07-05
      • 2012-01-02
      • 2015-07-18
      • 1970-01-01
      • 2011-01-02
      • 2012-07-10
      相关资源
      最近更新 更多