CakePHPで発生するNoticeエラー

 PHPのフレームワークCakePHPでログインなどの何かしらのアクションを起こしたときに上記のような

Notice (1024): Element Not Found: Elements/default.ctp [CORE/Cake/View/View.php, line 425]

というメッセージが出るときがあります。私はCakeDC/usersのプラグインを使ったときに発生しました。

 この対策と原因を下記に明記しておきます。

 この原因はCakePHPでVer. 2.7.0以前のバージョンを使用しているときに発生します。このエラーが発生するタイミングを見て頂くとわかると思いますが、セッションを使った下記のようなメッセージを出すときに発生します。

$this->Session->setFlash('(ここにメッセージ)');

 ヒントはCakePHPのドキュメントに書かれています。SessionComponent::setFlashの場所を見てみると

バージョン 2.7.0 で撤廃: フラッシュメッセージの作成には フラッシュ を使用すべきです。 setFlash() メソッドは、3.0.0 で削除されます。

 つまり、「もう使っていないから、使うのをやめて!」ということです。では、どのようにすればいいかというと、「$this->Session->setFlash()」を「$this->Flash->set()」に置換すればいいのです。下記のように。

$this->Flash->set('(ここにメッセージ)');

 たいしたことではないのですが、気がつくまで結構面倒だったりするんですよね(^^;

CakePHP2 実践入門 (WEB+DB PRESS plus)

著者/訳者:安藤 祐介 岸田 健一郎 新原 雅司 市川 快 渡辺 一宏 鈴木 則夫

出版社:技術評論社( 2012-09-29 )

定価:¥ 3,110

Amazon価格:¥ 3,110

単行本(ソフトカバー) ( 416 ページ )

ISBN-10 : 4774153249

ISBN-13 : 9784774153247