2016年1月8日金曜日

 

タイムゾーンが未設定だとCodeIgniterのカレンダークラスのWarning

CodeIgniterの便利なデフォルトのカレンダークラス、PHP5.1以降、TimeZoneを設定してないとWarningが表示されてしまう。
なので『php.ini』ファイルなどで設定する。

    date.timezone = Asia/Tokyo;
またはPHPファイル内で設定。

    date_default_timezone_set('Asia/Tokyo');
コントローラなど先頭で記述するのが良いでしょう。

ラベル: ,


 

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 徹底ガイド!

ラベル: ,


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

登録 投稿 [Atom]

Google