cakephpで『strtotime() [http://php.net/function.strtotime]: It is not safe to rely on the system’s timezone settings.』と表示されたら

cakephpここで下記のようなエラーが表示されたら

Warning (2): strtotime() [http://php.net/function.strtotime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead [CORE/cake/libs/cache.php, line 597] Notice: Trying to get property of non-object in /var/www/domain/hoge.info/cakephp/cake/libs/cache/file.php on line 248 Fatal error: Call to a member function cd() on a non-object in /var/www/domain/hoge.info/cakephp/cake/libs/cache/file.php on line 248

上記指摘通り、

app/config/core.phpの下記をチェック!

//date_default_timezone_set('UTC');

コメントアウトをはずしてみると動きました。。

cakephp 指定のViewでheader内にjs、cssを指定するメモ

cakephp1.3を利用していて、指定の画面だけに、特定のCSSやjavascriptを利用したい場合がある

便利なようにcakephpでは、下記方法で指定が可能でした。

 

# app/view/hoge.ctp
echo $html->script('jsfile', array('inline' => false));
echo $html->css('cssfile', null, array('inline' => false));

ただ条件として、app/webroot/layout/default.ctpなどで、
予め、

<head>
<?
echo $scripts_for_layout;
?>
</head>

となっている必要があります。

 

またインラインでjs,CSSを利用したい場合は、普通に下記のように設定すればOK!

Viewはこんな感じ

#app/view/hoge.ctp
<?php
echo $javascript->link('jsfile');
?>

コントローラは↓

#app/controllers/hoges_controller.php

var $helpers = array('Javascript');

CakePHP 1.2をつかっていたが1.3に移行すると動かなくなった機能メモ

 

  • $form->year $from->dayの引数が変わった
$form->year("Info.DAILY_YMD",2009,2016,null,null,false)."年";

と利用していた場合は、最後の引数が利用できなくなっていたので、下記のように配列で最後の引数で指定できる。

$form->year("Info.DAILY_YMD",2009,2016,"now-1 day",array('empty' => false))."年";

上記同様に$form->dayも同じノリで変更しないと動きませんでした。

 

  • renderElementがelementという名前に変わった
echo $this->renderElement("indextest");

↓ elementに!

echo $this->element("indextest");

他にも色々でてきそうですが、取り急ぎ変わった点をメモ。

CakePHP データベースの切り替えメモ

app/config/database.php に

        var $second_db = array(
                'driver' => 'mysql',
                'persistent' => false,
                'host' => 'localhost',
                'login' => 'usertest',
                'password' => '******',
                'database' => 'testdb2',
        );

のように追記し、対象のモデルで、

$useDbConfig = 'second_db';

とすれば指定していできます。

※デフォルトではdatabase.phpの$defaultが呼ばれるようです。

 

http://blog.syuhari.jp/archives/142

上記サイトを参考にさせていただきました。
ありがとうございます!