2016年1月8日金曜日

 

CodeIgniterでコントローラ名:Index.phpにメソッド名:index()は『Undefined property: Index::$load』

CodeIgniterでのエラーというかPHPの特性。
クラス名と同じメソッドはコンストラクタ扱い。

class Index extends CI_Controller {
    public function index()
    {
        $this->load->view('index');
    }
}
これはエラー。親コンストラクタが呼ばれないので。エラーはこんな感じ。
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Index::$load
Filename: controllers/Index.php
正しくは

class Index extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
        // 
    }

    public function index()
    {
        $this->load->view('index');
    }
}
独自にコンストラクタを定義する場合も『parent::__construct()』以下に記述すれば良い。
これは大丈夫。

class Home extends CI_Controller {
    public function index()
    {
        $this->load->view('index');
    }
}
逆にこれはダメ。

class Home extends CI_Controller {
    public function home()
    {
        $this->load->view('index');
    }
}
ビュー名は関係ない。

参考

コントローラ | 基礎編 CodeIgniter Guide 徹底ガイド!

ラベル: ,


コメント: コメントを投稿

登録 コメントの投稿 [Atom]



この投稿へのリンク:

リンクを作成



<< ホーム

This page is powered by Blogger. Isn't yours?

登録 投稿 [Atom]

Google