Call to a member function setFlash() on null への対策
現象
- post 処理をした
- post 処理の中で
setFlash
を叩いた(X) Call to a member function setFlash() on null
が発生する- (CakePHP 2.5.6 より)
(X)
18 public function add() { 21 if($this->request->is('post')) { 22 if ($this->User->save($this->request->data)) { 23 $this->Session->setFlash('Success!'); 24 $this->redirect(array('action' => 'index')); 25 } else { 26 $this->Session->setFlash('failed!'); 27 } 28 } 29 }
理由
Session モジュールが app に include されていない
対策
AppController に次のソースを記載する
public $components = array('Session', 'DebugKit.Toolbar');
1 <?php 2 3 App::uses('Controller', 'Controller'); 4 5 class AppController extends Controller { 6 public $components = array('Session', 'DebugKit.Toolbar'); 7 } 8 ?>
AppController でモジュールを読み込むべきかどうかは要検証項目