7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?