LoginSignup
7
5

More than 5 years have passed since last update.

CakePHP で Call to a member function save() on null

Last updated at Posted at 2015-07-03

CakePHPのControllerでDBにsave()しようとしたらエラーが出ました。
環境はCakePHP2.6です。

error
Fatal Error
Error: Call to a member function save() on null 
File: /home/test/Test/App/Controller/TestController.php 
Line: 6

Notice: If you want to customize this error message, create App/View/Errors/fatal_error.ctp

save()が無いって言ってます。
ソースはこんな感じで書いていました。

App/Controller/TestController.php
<?php
class TestController extends AppController {
    public function test() {
        if ($this->request->is('post'))
        {
            $this->Test->save($this->request->data);
        }
    }
}
?>
App/View/Test/test.ctp
<?php
  echo $this->Form->create('Test');
  echo $this->Form->input('Test', array('type' => 'text'));
  echo $this->Form->end('submit');
?>
App/Model/Test.ctp
<?php
App::uses('AppModel', 'Model');

class Test extends AppModel {
  public $useTable = 'test';
}
?>

ControllerでloadModelする必要がありました。

App/Controller/testController.php
<?php
class TestController extends AppController {
    public function test() {
        if ($this->request->is('post'))
        {
            $this->loadModel('Test');
            $this->Test->save($this->request->data);
        }
    }
}
?>

Formのcreate()でModelのクラスを指定すればControllerでも勝手に読み込んでくれてるのかと思ってましたが、そんなことは無いみたいですね。

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5