0

したがって、コントローラーがメソッドを呼び出すときにメソッドが未定義であるため、致命的なエラーが発生します。メソッドはクラスモデル内にあるため、これは当てはまりません。

StudentsController.php

<?php
    class StudentsController extends AppController{

        public function index(){
            $students = $this->Student->find('all');    
            $this->set('students', $students);
        }

        public function add(){
            if($this->request->is('post')){
                $this->formatData($this->request->data);
            }
        }
    }

?>

そして、私のモデル: Student.php (モデル)

<?php   
    class Student extends AppModel{
        var $studentData;

        public function formatData($studentData){
            if(is_null($studentData)){
                return false;
            }else{
                echo $studentData;
            }
        }
    }
?>
4

1 に答える 1

2

モデルでメソッドを呼び出すのではなく、そのようなメソッドが利用できないコントローラーで呼び出しているため、エラーが発生します。

コントローラーはモデルを自動的にロードする場合がありますが、API を公開することはなく、魔法のプロパティ アクセサーを介してモデルのインスタンスを利用できるようにするだけです。

だから代わりに

$this->formatData($this->request->data);

次のように、モデルでメソッドを呼び出す必要があります。

$this->Student->formatData($this->request->data);

こちらもご覧ください

于 2013-10-24T14:59:48.260 に答える