0

我正在使用 Codeigniter 创建一个简单的博客。但是我在调​​用默认控制器之外的另一个控制器时遇到了麻烦。

以下 URL 将我带到我的 config/routes.php 中指定的默认控制器。

blog/index.php

根据文档,只需附加保存在 controllers/ 中的另一个控制器的名称即可:

blog/index.php/blog_login

这是我的控制器类,名为 blog_login.php:

class Blog_login extends CI_Controller {

    public function index()
    {
        echo 'It works!';
    }
}

但是这样做会引发 404 错误,这让我觉得我错过了一些东西。在尝试访问不同的控制器之前,我还应该配置其他东西吗?

4

2 回答 2

0

当你打电话时:

blog/index.php/blog_login

你真的在你的“博客​​”控制器中调用了一个名为“blog_login”的方法。如果要调用另一个控制器,它必须具有以下结构:

controller_name/controller_method

所以,如果你想调用你的 blog_login 控制器,就这样调用它:

blog_login/

注意:有时需要将 base_url() 添加到您的 URL 以使 CI 正确理解 URL。

于 2012-07-28T23:57:31.117 回答
0

http://codeigniter.com/user_guide/general/routing.html正确阅读此内容,再清楚不过了。

根据文档,只需附加保存在 controllers/ 中的另一个控制器的名称即可

这不是真的。如果你想调用另一个控制器'Blog_login',你只需将控制器的名称作为 url 的第一段:

domain.com/index.php/blog_login

这永远不会奏效:

blog/index.php/blog_login

Index.php(除非您通过 .htaccess 将其删除)始终紧跟在您的 domain.com 之后

最后,您不需要指定路线,除非您正在做一些非标准的事情。所以

domain.com/index.php/blog_login- 在 Blog_login 控制器中 domain.com/index.php/blog调用 index() 函数 - 在博客控制器中调用 index() 函数domain.com/index.php/blog/search- 在博客控制器中调用 search() 函数。

以上示例都不需要在 routes.php 中添加条目

于 2012-07-10T19:15:16.347 回答