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/

注: CI が URL を正しく認識できるようにするために、URL に base_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 コントローラで index() 関数を呼び出します -domain.com/index.php/blogブログ コントローラで index() 関数を domain.com/index.php/blog/search呼び出します - ブログ コントローラで search() 関数を呼び出します。

上記の例のいずれも、routes.php にエントリを必要としません。

于 2012-07-10T19:15:16.347 に答える