CodeIgniterでコントローラークラスの名前としてIndex
を使用しないでください。インデックスコントローラーがあり、そのメソッドが複数回呼び出されています。具体的には、そこにルーティングする必要があるパスを訪れているかどうかにかかわらず、最初に呼び出されるメソッドindex
が表示されます。アプリケーション/コントローラ/ index.phpをCodeIgniterで2つのコントローラメソッドが呼び出されるのはなぜですか?
class Index extends CI_Controller
{
public function index()
{
echo "index";
}
public function blah()
{
echo "blah";
}
}
で
私はindex/blah
を訪れたとき、私はindexblah
が印刷ご覧ください。私がindex/index
にアクセスすると、私はindexindex
と表示されます。コントローラの名前を他のもの(Fooなど)に変更しても問題はありません。それは明らかな回避策ですが、なぜ誰にこのことが起こっているのか教えていただけますか?これをCodeIgniterのバグとして報告する必要がありますか?
(注:私はconfigs/routes.php
で設定なしのルートを持っていません。私のindex.php
はCodeIgniterのツリーの外にある)
ありがとう!コントローラーの名前を持つコントローラーにメソッドがあれば、実際にはこれが問題になります。私は[予約名のリスト](http://codeigniter.com/user_guide/general/reserved_names.html)に 'index'も見つけました。 – theazureshadow