CakePHPで開発を行っているときは、app/config/core.php にて debug を1もしくは2に設定すると思います。
しかし、それだと Notice が発生した場合にも表示されてしまいます。
php.ini でNoticeを出さないように設定しても、Cakeは親切なので? きっちりNoticeを表示してくれます。

本来はNoticeを表示させないようなプログラムを書くのが望ましいですが、どうしてもという場合の解決方法をお教えします。

cake/libs/configure.php の修正


cake/libs/configure.php の273行目あたりを以下のように修正し、強制的にE_ALLにされるのを回避する。
if (isset($config['debug'])) {
if ($_this->debug) {
// error_reporting(E_ALL);


cake/libs/debugger.php の修正


cake/libs/debugger.php の193行目あたりを修正し、E_NOTICEが表示される時にハンドリングされないようにする。
$level = LOG_DEBUG;
switch ($code) {
case E_PARSE:
case E_ERROR:
case E_CORE_ERROR:
case E_COMPILE_ERROR:
case E_USER_ERROR:
$error = 'Fatal Error';
$level = LOG_ERROR;
break;
case E_WARNING:
case E_USER_WARNING:
case E_COMPILE_WARNING:
case E_RECOVERABLE_ERROR:
$error = 'Warning';
$level = LOG_WARNING;
break;
/* case E_NOTICE:
case E_USER_NOTICE:
$error = 'Notice';
$level = LOG_NOTICE;
break;*/


これで、debugを有効にしてもNoticeを表示しなくなる。

【参考】
"Notice エラーを表示させないようにする" フォーラム - CakePHP Users in Japan

にほんブログ村 IT技術ブログ プログラム・プログラマへ