WordPress・WEB系の開発(プログラム)関係や技術情報ほか、技術情報全般を掲載

  • このエントリーをはてなブックマークに追加

CakePHP メッセージ表示でエラー Call to a member function setFlash() on a non-object / Sessionコンポーネント

問い合わせフォームのサンプルを動かそうとしたのだが、完了メッセージの処理の部分でエラーが出てしまった。
CakePHP  the rapid development php framework  Errors
■メッセージ表示:

$this->Session->setFlash('送信完了');

■エラーメッセージ:

Fatal Error
 Error: Call to a member function setFlash() on a non-object
 File: /virtual/hoge/public_html/dev.hogehoge.net/cakephp/app/Controller/ContactController.php
 Line: 42

調べてみると、Sessionコンポーネントが読み込まれていないことが原因でした。
Sessionコンポーネントはデフォルトの状態では読み込まれるようになっているようなのですが、
DebugKitコンポーネントを利用するようにしていたため、設定が上書きされてしまっていたようです。

下記のように AppController.php 冒頭で、Sessionコンポーネントを読み込むように修正し解決しました。

# [ app/Controller/AppController.php ]
# 修正前:
 public $components = array('DebugKit.Toolbar');
# 修正後:
 public $components = array('DebugKit.Toolbar', 'Session');

※環境情報:
サーバ・・・CORESERVER
CakePHP・・・CakePHP 2.4.6

関連記事

コメントは利用できません。

アーカイブ