CakePHP:控制器找不到模型功能

时间:2013-10-23 18:04:06

标签: php cakephp

因此,我遇到致命错误,因为当控制器调用该方法时,该方法未定义。虽然这不是真的,因为该方法在类模型中。

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;
            }
        }
    }
?>

1 个答案:

答案 0 :(得分:2)

你没有在模型上调用方法,而是在没有这种方法的控制器上,因此错误。

虽然控制器可能会自动加载模型,但它不公开其API,它只是通过魔术属性访问器提供模型的实例。

所以而不是

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

你必须像这样调用模型上的方法:

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

另见